五种常用的设计模式: 1, 单例模式 2, 工厂模式 3, 观察者模式 4, 命令链模式 5, 策略模式
(1)单例模式: 单例模式顾名思义, 就是只有一个实例. 作为对象的创建模式, 单例模式确保某一个类只有一个 实例, 而且自行实例化并向整个系统提供这个实例.
一个类在整个应用中, 只有一个对象实例的设计模式
类必须自行创建这个实例
必须自行向整个系统提供这个实例
三私: 私有静态成员变量, 构造函数, 克隆函数
一公: 公共的静态方法
单例模式的要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例.
典型的代表如框架中的基类对象.
(2)工厂模式
可以根据输入的参数或者应用程序配置的不同一创建一种专门用来实例化并返回其它类的实例的类
抽象基类: 类中定义抽象一些方法, 用以在子类中实现
继承自抽象基类的子类: 实现基类中的抽象方法
(3)观察者模式
观察者模式提供了组件之间紧密耦合的另一种方法.
该模式: 一个对象通过添加一个方法 (该方法允许另一个对象, 即观察者注册自己) 全本身变得可观察. 当可观察的对象更改时, 它会将消息发送到已注册的观察者. 这些观察者使用该信息执行的操作与可观察的对象无关.
(4)命令链模式
以松散耦合主题为基础, 发送消息, 命令和请求, 或通过一组处理程序发送任意内容. 每个处理程序都会自行判断自己能否处理请求, 如果可以, 该请求被处理, 进程停止.
(5)策略模式
此算法是从复杂类提取的, 因而可以方便地替换.
----------------------------------------------------------------- 分割线 --------------------------------------------------------
在 PHP 中, 我主要使用了以下两种设计模式:
单例模式
单例模式顾名思义, 就是只有一个实例. 作为对象的创建模式, 单例模式确保某一个类只有一个实例, 而且自行实例化并向整个系统提供这个实例.
单例模式的要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例.
典型的代表如框架中的基类对象.
简单工厂模式
抽象基类: 类中定义抽象一些方法, 用以在子类中实现
继承自抽象基类的子类: 实现基类中的抽象方法
工厂类: 用以实例化所有相对应的子类
这种我们使用最常见, 基本所有的 MVC 框架中都是这样产生的.
来源: http://blog.csdn.net/flower1q84/article/details/79217097