例如,您可以说您正在编写一个提供松散耦合的消息传递系统,也可以说你正在编写名称为观察者的模式。
下面我们就来看看PHP有哪些设计模式?策略模式策略模式是对象的行为模式,用意是对一组算法的封装。
动态的选择需要的算法并使用。
策略模式指的是程序中涉及决策控制的一种模式。
策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
策略模式的三个角色:1.抽象策略角色2.具体策略角色3.环境角色(对抽象策略角色的引用)实现步骤:1.定义抽象角色类(定义好各个实现的共同抽象方法)2.定义具体策略类(具体实现父类的共同方法)3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)工厂模式工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new *** 作的一种模式。
使用工厂模式的好处是,如果你想要更改所实例化的类名等,则只需更改该工厂方法内容即可,不需逐一寻找代码中具体实例化的地方(new处)修改了。
为系统结构提供灵活的动态扩展机制,减少了耦合。
单例模式单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库 *** 作、显卡的驱动程序常被设计成单例。
单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。
单例模式有以下3个特点:1.只能有一个实例。
2.必须自行创建这个实例。
3.必须给其他对象提供这一实例。
那么为什么要使用PHP单例模式?PHP一个主要应用场合就是应用程序与数据库打交道的场景,在一个应用中会存在大量的数据库 *** 作,针对数据库句柄连接数据库的行为,使用单例模式可以避免大量的new *** 作。
因为每一次new *** 作都会消耗系统和内存的资源。
注册模式注册模式,解决全局共享和交换对象。
已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可。
将对象注册到全局的树上。
任何地方直接去访问。
适配器模式将各种截然不同的函数接口封装成统一的API。
PHP中的数据库 *** 作有MySQL,MySQLi,PDO三种,可以用适配器模式统一成一致,使不同的数据库 *** 作,统一成一样的API。
类似的场景还有cache适配器,可以将memcache,redis,file,apc等不同的缓存函数,统一成一致。
首先定义一个接口(有几个方法,以及相应的参数)。
然后,有几种不同的情况,就写几个类实现该接口。
将完成相似功能的函数,统一成一致的方法。
观察者模式1:观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。
2:场景:一个事件发生后,要执行一连串更新 *** 作。
传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。
当更新的逻辑增多之后,代码会变得难以维护。
这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码。
3:观察者模式实现了低耦合,非侵入式的通知与更新机制。
当新对象要填入的时候,只需要在主题(又叫可观察者)中进行注册(注册方式很多,你也可以在构造的时候,或者框架访问的接口中进行注册),然后实现代码直接在新对象的接口中进行。
这降低了主题对象和观察者对象的耦合度。
好的设计模式不会直接进入你的代码中,而是进入你的大脑中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)