Я не могу понять, какие преимущества предлагает шаблон стратегии. См. Пример ниже.
//Implementation without the strategy pattern
class Registry {
public function Func1(){
echo 'called function 1';
}
public function Func2(){
echo 'called function 2';
}
}
$client = new Registry();
$client->Func1();
$client->Func2();
//Implementation with strategy pattern
interface registry {
public function printMsg();
}
class Func1 implements registry {
public function printMsg(){
echo 'called function 1';
}
}
class Func2 implements registry {
public function printMsg(){
echo 'called function 2';
}
}
class context {
public function printMsg(Registry $class){
$class->printMsg();
}
}
$client = new context();
$client->printMsg(new Func1());
$client->printMsg(new Func2());
В приведенных выше двух примерах, какие преимущества будет предлагать стратегия, и как это лучше, чем первый подход? Почему я должен использовать шаблон стратегии?
В приведенном выше примере кода могут содержаться ошибки, пожалуйста, игнорируйте код.