php八大设计模式之简介篇
2017-03-24 17:00
423 查看
设计模式的在面向对象中的重要性?
更深入的理解面向对象的思想,有利于开发出扩展性强的程序。在 PHP 面向对象中有一个 “开闭原则” :“软件实体应当对扩展开放,对修改关闭”。通俗的说: 添加新类/接口等进来行,修改不行。
1、工厂模式
简单点来说,就是用到什么类,就去实例化对应的类。比如:php 可能连接 mysql,可能连接 sqlserver,也可能是 oracle 数据库,可以动态的去链接。
书籍<php权威编程>(英文名称为PHP 5 Power Programming)也提到一个工厂模式的例子:在为用户注册的时候,分为很多种角色的用户。比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现,代码也容易维护,为每种角色可以生成操作的类。
详情:点击打开链接
2、单例模式
无论实例化多少次只产生一个对象,减少内存开销。
php的单例,仅指进程中单例,不似Java,在整个内存中单例。
详情:点击打开链接
3、职责链模式
当发生情况去找最近的类(就是级别最低的)去解决,如果解决不了就顺着往上找职责更高的,直到解决为止。
注意:一定是要有一个职责最高的类,否则会有问题。
详情:点击打开链接
4、观察者模式
分为观察者、被观察者。观察者时刻监听被观察动态,及时做出相应改变。
详情:点击打开链接
5、策略模式
提供一个虚拟的整体,根据不同的要求(参数)提供不同的“零件”(实例化不同的对象返回)。
跟工厂模式很是相似。
详情:点击打开链接
6、装饰器模式
一条从初始值“装饰”到最终值的链条。动态、扩展性好。
详情:点击打开链接
7、适配器模式
将一个抽象被具体后的结果转换成另外一个需求所需的格式。
在生活中也处处有适配器的出现,比如转换头,就是让两种不同的规格合适的搭配在一起。
详情:点击打开链接
8、桥接模式
一个抽象产生多种具体的实现方式,单纯的通过子类继承会有子类爆炸(过多的子类产生)的现象,系统需要它们之间进行动态耦合。
详情:点击打开链接
更深入的理解面向对象的思想,有利于开发出扩展性强的程序。在 PHP 面向对象中有一个 “开闭原则” :“软件实体应当对扩展开放,对修改关闭”。通俗的说: 添加新类/接口等进来行,修改不行。
1、工厂模式
简单点来说,就是用到什么类,就去实例化对应的类。比如:php 可能连接 mysql,可能连接 sqlserver,也可能是 oracle 数据库,可以动态的去链接。
书籍<php权威编程>(英文名称为PHP 5 Power Programming)也提到一个工厂模式的例子:在为用户注册的时候,分为很多种角色的用户。比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现,代码也容易维护,为每种角色可以生成操作的类。
详情:点击打开链接
2、单例模式
无论实例化多少次只产生一个对象,减少内存开销。
php的单例,仅指进程中单例,不似Java,在整个内存中单例。
详情:点击打开链接
3、职责链模式
当发生情况去找最近的类(就是级别最低的)去解决,如果解决不了就顺着往上找职责更高的,直到解决为止。
注意:一定是要有一个职责最高的类,否则会有问题。
详情:点击打开链接
4、观察者模式
分为观察者、被观察者。观察者时刻监听被观察动态,及时做出相应改变。
详情:点击打开链接
5、策略模式
提供一个虚拟的整体,根据不同的要求(参数)提供不同的“零件”(实例化不同的对象返回)。
跟工厂模式很是相似。
详情:点击打开链接
6、装饰器模式
一条从初始值“装饰”到最终值的链条。动态、扩展性好。
详情:点击打开链接
7、适配器模式
将一个抽象被具体后的结果转换成另外一个需求所需的格式。
在生活中也处处有适配器的出现,比如转换头,就是让两种不同的规格合适的搭配在一起。
详情:点击打开链接
8、桥接模式
一个抽象产生多种具体的实现方式,单纯的通过子类继承会有子类爆炸(过多的子类产生)的现象,系统需要它们之间进行动态耦合。
详情:点击打开链接