您好,欢迎访问一九零五行业门户网

php 工厂模式和策略模式区别

工厂是创建型模式,它的作用就是创建对象;
策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;
关注点不一样
一个关注对象创建
一个关注行为的封装(推荐学习:php视频教程)
解决不同的问题
工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例;它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。
策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。
工厂相当于黑盒子,策略相当于白盒子;
实例:
<?phpheader('content-type:text/html;charset=utf-8');abstract class product {abstract public function getname();}class producta extends product {public function getname() {echo '这是a商品<br>';}}class productb extends product {public function getname() {echo '这是b商品<br>';}}//工厂模式class productfactory {public static function create($num) {switch($num) {case 1:return new producta();case 2:return new productb();}return null;}}//传递不同的参数获取不同的对象$obj=productfactory::create(1);$obj->getname(); //这是a商品$obj=productfactory::create(2);$obj->getname(); //这是b商品 //=======策略模式ontheway();}}$obj=new strategy();$obj->getway(new walk); //走着去$obj->getway(new bick); //骑自行车去$obj->getway(new bus); //坐巴士去
更多php相关技术文章,请访问php图文教程栏目进行学习!
以上就是php 工厂模式和策略模式区别的详细内容。
其它类似信息

推荐信息