摘要: 1. 适配器模式 将一个类的接口转换成希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 2. 实列 class AliMessage { public function send() { echo "ali发送短信" . PHP_EOL; } publ 阅读全文
posted @ 2020-12-28 22:10 linsonga 阅读(88) 评论(0) 推荐(0)
摘要: 1. 装饰器模式 动态地给一个对象添加新的功能,同时又不改变其结构,进行内容扩展 就增加功能来说,Decorator模式相比生成子类更为灵活 参考链接 2. 实列 根据新老用户发送不同的短信模板 interface Template { public function message(); } // 阅读全文
posted @ 2020-12-28 16:54 linsonga 阅读(90) 评论(0) 推荐(0)
摘要: 1. 抽象工厂模式 还是将实现推迟到子类,但是抽象工厂里面不仅仅只返回一个对象,而是返回一堆 2. 实列 interface Message { public function send(string $msg); } class AliMessage implements Message { pu 阅读全文
posted @ 2020-12-28 14:27 linsonga 阅读(67) 评论(0) 推荐(0)
摘要: 1. 工厂模式 与简单工厂的区别是,将实现推迟到子类 可以不用抽象类,直接用一个接口来定义工厂方法,摒弃掉getMessage()方法,外部直接调用公开的模板方法(factoryMethod)即可 2. 实列 interface Message { public function send(stri 阅读全文
posted @ 2020-12-28 13:43 linsonga 阅读(67) 评论(0) 推荐(0)
摘要: 1. 简单工厂模式 简单工厂,也称静态工厂,不属于GoF23种设计模式。可以说是所有的设计模式中大家可能最容易理解的模式 传入指定数据,返回相应的内容 使用接口更加符合面向对象的规范 createMessage 不一定使用 static,看自己业务情况决定 增加发送渠道时,添加新类继承 Messag 阅读全文
posted @ 2020-12-28 12:00 linsonga 阅读(113) 评论(0) 推荐(0)
摘要: 1. static 使用 准备一个类,有静态变量、静态方法、普通方法 class Test { static $v = 'a'; static function showV() { echo self::$v; } function showVV() { echo self::$v; } stati 阅读全文
posted @ 2020-12-28 11:07 linsonga 阅读(108) 评论(0) 推荐(0)