策略模式
Posted licnlt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了策略模式相关的知识,希望对你有一定的参考价值。
// 策略的接口定义策略的所有行为 interface Animal { public function run(); public function eat(); } // 实现接口的所有方法 class Cat implements Animal { public function run() { echo "cat run"; } public function eat() { echo "cat eat"; } } // 实现接口的所有方法 class Dog implements Animal { public function run() { echo "dog run"; } public function eat() { echo "dog eat"; } } class MyAnimal { protected $animal; public function __construct(Animal $animal) { $this->animal = $animal; } public function get() { $this->animal->run(); $this->animal->eat(); } } $MyAnimal = new MyAnimal(new Cat()); $MyAnimal->get(); $MyAnimal = new MyAnimal(new Dog()); $MyAnimal->get();
策略模式实现了硬编码到解耦。
以上是关于策略模式的主要内容,如果未能解决你的问题,请参考以下文章