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

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

内容导读

收集整理的这篇技术教程文章主要介绍了php工厂模式和策略模式区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1916字,纯文字阅读大概需要3分钟

内容图文

工厂是创建型模式,它的作用就是创建对象;

策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;

关注点不一样

一个关注对象创建

一个关注行为的封装(推荐学习: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商品 //=======策略模式<?phpheader('content-type:text/html;charset=utf-8');interface IStrategy {function ontheway();}class Walk implements IStrategy {public function ontheway() {echo '走着去<br>';}}class Bick implements IStrategy {public function ontheway() {echo '骑自行车去<br>';}}class Bus implements IStrategy {public function ontheway() {echo '坐巴士去<br>';}}//策略模式,传递不同的参数,调用不同的策略class Strategy{public function getWay(IStrategy $obj) {$obj->ontheway();}}$obj=new Strategy();$obj->getWay(new Walk); //走着去$obj->getWay(new Bick); //骑自行车去$obj->getWay(new Bus); //坐巴士去

更多PHP相关技术文章,请访问PHP图文教程栏目进行学习!

以上就是php 工厂模式和策略模式区别的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php工厂模式和策略模式区别全部内容,希望文章能够帮你解决php工厂模式和策略模式区别所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com