摘要: 1. 单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点 2. 实列 class Singleton { private static $uniqueInstance; // 静态实例 private $singletonData = '单例类内部数据'; private functio 阅读全文
posted @ 2020-12-31 21:12 linsonga 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1. 模板模式 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 2. 实列 class Member { private $state; private $score; public function SetState($state) { $this->state = $st 阅读全文
posted @ 2020-12-31 20:10 linsonga 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1. 访问者模式 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作 2. 实列 interface ServiceVisitor { public function SendMsg(SendMessage $s); function PushM 阅读全文
posted @ 2020-12-31 20:01 linsonga 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1. 模板模式 属于行为型模式 在抽象父类中定义一个模板方法的方法,通过子类的覆盖使得相同算法框架可以有不同的执行结果 2. 实列 abstract class AbstractClass { public function TemplateMethod() { $this->PrimitiveOp 阅读全文
posted @ 2020-12-31 19:59 linsonga 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 1. 门面模式 门面属于结构型模式 提供一个统一的接口可以访问多个子系统的多个不同的接口,对现有系统类方法的委托调用 2. 案例 当炒股票时,新股民不了解股票,是很容易亏钱,需要学习股票知识。 这样新手最好把炒股委托给基金公司,基金公司了解证券知识,那么股民把自己的股票托管给基金公司去运营,这样股民 阅读全文
posted @ 2020-12-31 19:58 linsonga 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1. 桥接模式 将抽象部分与它的实现部分分离,使它们都可以独立地变化态 这个模式和适配器非常相似。适配器的目的是为了帮助两个不太相关的类,让它们能够协同工作,实现中间转换工作。 桥接是为了让方法的行为解除继承耦合,方便地添加、修改,动态调用行为,让抽象接口和实现部分可以独立进行改变 解决继承的不断增 阅读全文
posted @ 2020-12-31 19:56 linsonga 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 1. 备忘录模式 在不破坏封装性的前提下,捕获一个对象的内部状态 在该对象之外保存这个状态,就可将该对象恢复到原先保存的状态 2. 实列 class Originator { private $state; public function SetMeneto(Memento $m) { $this- 阅读全文
posted @ 2020-12-31 15:36 linsonga 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 1. 建造者模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2. 实列 class Product { // (商品)产品类 private $parts = []; public function Add(String $part): void { $this->p 阅读全文
posted @ 2020-12-31 13:50 linsonga 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 1. 中介者模式 用一个中介者对象来封装一系列的对象交互 ,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 2. 实列 abstract class Mediator { abstract public function Send($message, $user); 阅读全文
posted @ 2020-12-31 13:00 linsonga 阅读(58) 评论(0) 推荐(0) 编辑