随笔分类 - 设计模式
摘要:状态模式 当状态改变时,类的行为也发生改变。 状态模式是以面向对象的方式实现状态机的行为设计模式。对于状态模式,通过将每个单独状态实现为派生类的状态模式接口, 来实现一个状态机,并通过调用模式超类的方法来实现状态转换。状态模式可以被解释为一种策略模式,它能够通过调用模式接口定义的方法来切换当前策略。
阅读全文
摘要:观察者模式 定义了对象之间的依赖,一旦其中一个对象的状态发生改变,依赖它的对象都会收到通知。 实例 <?php class Job { public $title; public function __construct($title) { $this->title = $title; } } cl
阅读全文
摘要:备忘录模式 <?php class Memento{ private $_state; public function __construct($state){ $this->_state=$state; } public function getState(){ return $this->_st
阅读全文
摘要:中介者模式 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用,从而使它们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用,保证这些作用可以彼此独立的变化。 中介者模式添加了第三方对象(称为中介者)来控制两个对象(称为 colleague)之间的
阅读全文
摘要:在面向对象程序设计中,迭代器模式是一种设计模式,其中迭代器用于遍历容器并访问容器的元素。迭代器模式将算法与容器解耦; 在某些情况下,算法是特定容器必需的,因此不能解耦。
阅读全文
摘要:_bulb = $bulb; } public function execute() { $this->_bulb->turnOn(); } public function undo() { $this->_bulb->turnOff(); } public function redo() { ...
阅读全文
摘要:next = $account; } public function canPay($amount) { return $this->balance >= $amount; } public function pay($amount) { if ($this->canPay($amount)) { echo ...
阅读全文
摘要:door = new Door(); } public function open($password) { if ($this->authenticate($password)) { $this->door->open(); } else { echo 'The password is wrong...
阅读全文
摘要:装饰器模式是为了向一个现有的对象添加新的功能,在不想继承该对象的情况下使用,以避免子类较多的情况。
阅读全文
摘要:将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式的关键在于类中创建了一个包含自己对象的属性集合。
阅读全文
摘要:桥接模式将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。
阅读全文
摘要:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
阅读全文
摘要:原型模式通过对既有对象的克隆来创建新的对象
阅读全文
摘要:建造者模式适用于将多个简单的对象合并成一个复杂的对象。
阅读全文
摘要:单例模式是最简单也是最常用的一种设计模式了,通过单例模式,可以保证系统运行过程中,该类不会被重复实例化。即:一个类只有一个实例。
阅读全文
摘要:与工厂模式类似,抽象工厂模式旨在解决多级结构的解耦问题。
阅读全文
摘要:工厂模式是我们最常用的实例化对象的方式,工厂模式的存在,解决了接口(实际是类)选择的问题。
阅读全文