php设计模式课程---8.适配器模式是什么 一.总结 一句话总结: 充电过程中,手机充电器相对于手机和插座之间就是适配器 1.编程中的适配器是怎么回事? 写一个类(适配器),将传入的数据的格式或者内容修改为需要的,再传出去 例子:而这个类就是相当于手机和插座之间的手机充电器,传入的数据相当于插座上的电,传出的数据相当于给手机充的电 2 class TianQi { 3 public function get(){ 4 // 操作API 5 // 解析XML 6 // 一系列的复杂操作,得到 7…
php设计模式课程---6.策略模式如何使用 一.总结 一句话总结:比如代码需求,做一饭店,有南北方不同菜系,不同分店有不同的饭菜汤的需求,代码怎么设计 从饭店有特色过渡到厨师有特色(南方厨师(南方饭,南方菜,南方汤),北方厨师(北方饭,北方菜,北方汤)) 利用厨师的组合实现饭店有不同特色(满足不同分店的需求) 1.传入的参数是对象,执行对象的方法如何实现? 就是普通的->执行方法: return $this->fanCreateor->fan(); 83 class FD { 84 p…
php设计模式课程---7.装饰器模式如何使用 一.总结 一句话总结: 装饰器的核心是获取了文章类整个类,而不是获取了文章内容,有了这个文章类,我想给你加多少装饰就给你加多少装饰(将文章这个类封装进去),在这个类的外部,在装饰器中. 4 class Art { 5 protected $content; 6 public function __construct($content) { 7 $this->content = $content; 8 } 9 10 public function d…
php设计模式课程---4.观察者模式的好处是什么 一.总结 一句话总结: 方便选择之后去控制监听的板块数:比如选择男士之后,我可以决定监听广告里面的第二和第三板块. 1.为什么有观察者模式? 错误理解:根据不同的选择有不同的功能,比如选择男士,会有男士广告,选择女士,会有女士广告 正确理解:可以决定选择变化之后监听哪些板块,比如选择男士之后,我可以决定监听广告里面的第二和第三板块. 2.观察者模式如何实现(或者叫通知者模式更加合适)? 把监听的板块的名字放到一个数组,如果选择的对象发生变化,遍…
php设计模式课程---3.为什么会有抽象工厂方法 一.总结 一句话总结: 解决简单工厂方法增加新选择时无法满足面向对象编程中的开闭原则问题 1.什么是面向对象编程中的开闭原则? 应该对类的增加开放,对类的修改闭合:也就是你有什么事,就通过新增类实现,而不要修改原来的类 2.抽象工厂方法如何实现? 类实现接口的方法,每个类负责一种产品,比如读取数据库时,比如是PDO数据库,那么读取配置文件的pdo然后调用pdo类来生成对象即可 3.抽象工厂方法和简单工厂方法实现解决不同种情况的区别是什么? 简单…
php设计模式课程---2.为什么会用到简单工厂设计模式 一.总结 一句话总结: 比如调用数据库的语句,如果调用的数据库名字改了,或者调用的数据库类型改了(比如从Mysql用到了Mysqli),那么要改一百多处(有100处引用的情况),要疯掉的 1.简单工厂设计模式的实质是什么? 通过一个工厂,根据类型参数,返回不同的对象 抽象多个相同分支:本质多把多个相同的分支(比如以什么形式调用数据库(mysql,mysqli))抽象到一个里面去,便于修改,便于管理,这样改只用改一处 就是代码哪里改变,有变…
php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模式,某男和女同事,巧合手抓到一起,女朋友在窗外恰好看到. 杀人恐怖片:被坏人追杀,被害者跑到电梯里,电梯关到还有一道小缝隙时,坏人的匕首插进电梯缝隙关不上了. 2.为什么出现设计模式? 模式是因为语言不够灵活,不能适应复杂的场景,而想出的办法. 3.为什么java中的设计模式比php中的多? jav…
php设计模式课程---9.桥接模式是什么 一.总结 一句话总结: 一个类没干完,另外一个类接着给它干完 实质是类的拼接,也就是用类的组合代替了类的继承,因为类的组合可以有很多种方式,所以桥接就是类的组合 email类没做完的warn类接着做 sms类没做完的dang类接着做 52 echo $warn->send($email->send('lisi' , '考试了')) , "<br>"; 53 echo $dang->send($sms->se…
php设计模式课程---5.责任链模式是什么 一.总结 一句话总结: 自己权限不够,就交给上级处理 1.选择结构怎么做到面向对象开闭原则? 也就是说if,都可以用接口的实现来实现,这样就避免了更新的时候修改原来代码,这就是抽象工厂. 2.责任链模式怎么实现? 就是一条链,链上的人权限逐级变大,事情被最低权限的人发现,如果权限够处理,就处理,不够就交给上一级 代码实现的话就是有个基类,然后每种权限的人继承这个基类就可以了,实现里面的方法 3.php中如何从类的属性值变到方法? 属性加了圆括号变成了…
Adapter(适配器模式) ---- 加个“适配器”以便于复用 将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 应用场景 如果我们的代码依赖一些外部的API,或者依赖一些可能会经常更改的类,那么应该考虑用适配器模式. 你想使用一个已经存在的类,而它的接口不符合你的需求 你想创建一个可以复用的类,该类可以与其他不相关的类或者不可预见的类(即那些接口可能不一定兼容的类)协同工作. (仅适用于对象Adapter)你想使用一些已经…