PHP设计模式
文章平均质量分 67
IIIThSoul
这个作者很懒,什么都没留下…
展开
-
桥接模式(Bridge)
桥接模式:将抽象部分与它的实现部分分离,使它们能够独立地变化应用桥接模式解决问题的思路:假设这样一个应用场景,消息发送模块,消息可以分为普通消息-->加急消息-->特急消息,而发送消息的方式可以有站内消息、手机短信、EMail。在不适用设计模式的情况下,我们一般会写一个普通消息类,并封装所有的发送方式在这个类里面,而加急消息和特急消息可以继承自这个普通消息。咋看上去这样做挺好,而且转载 2014-12-30 11:38:42 · 238 阅读 · 0 评论 -
PHP设计模式之装饰模式(Decorator)
装饰模式可以在不适用创造更多子类的情况下,给对象增加额外的职责,使对象的功能得以扩展抽象构件(Component)角色:定义一个对象接口,以规范准本接收附加职责的对象,从而可以给这些对象动态地添加职责具体构件(Concrete Component)角色:定义一个将要接收附件职责的类装饰(Decorator)角色:持有一个指向Component对象的指针,并定义一个与Compon原创 2014-12-30 17:00:48 · 248 阅读 · 0 评论 -
PHP设计模式之组合模式(Composite Pattern)
组合模式是一系列对象组合成树形结构来表示整体和部分之间的关系,组合模式的主要目的是达到,访问组合对象和访问单个对象具有一致性。这里的组合对象比较特殊,本身可以是由其他的对象组合而成,同事,这个组合对象又可以组成更复杂对象的一部分。抽象角色(MenuComponent):给参加组合的对象规定统一的接口,接口中包括管理节点的方法,如add、remove,可以定义一些接口的默认动作树叶组件(原创 2014-12-30 16:33:54 · 271 阅读 · 0 评论 -
PHP设计模式 外观模式(Facade)
外观模式(Facade Pattern):外部与子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口是的这一个子系统更加容易使用。外观模式又称门面模式,它是一种对象结构模式。模式的结构外观模式就是让客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情。/***Facade 外观模式*//***摄像机原创 2014-12-30 16:03:34 · 282 阅读 · 0 评论 -
PHP代理模式Proxy Mode
代理,指的就是一个角色代表另一个角色采取行动,就像现实生活中,微软或联想不会直接把自己的系统或者电脑卖给客户,而是通过代理来完成它的销售业务。而客户,也不用为了买个Office或笔记本而到处去找联想工厂,或者微软公司,它只要找到厂商的销售代理就可以了。代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。代理模式涉及的角色:抽象主题角色,声明了代理主题和真实主题的公原创 2014-12-30 14:25:48 · 611 阅读 · 0 评论 -
单例模式
单例模式,保证一个类仅有一个实例,并且提供一个访问它的全局访问点。单例模式有三个特点:一个类只有一个实例类必须自行创建这个实例必须自行向整个系统提供这个实例单例模式的优点:对唯一实例受控访问缩小命名空间,单例模式是对全局变量的一种改进,避免了哪些存储唯一实例的全局变量污染命名空间允许对操作和表示的净化,单例类可以有子类,而且用这个扩展类的实例来配置一个应用是和容原创 2014-12-25 14:35:41 · 653 阅读 · 0 评论 -
简介
一、设计模式简介设计模式是一套被反复使用的、容易被他人理解的、可靠的代码设计经验的总结。设计模式不是Java的专利,我们用面向对象的方法在PHP里也能很好的使用23种设计模式。那么我们常说的架构、框架和设计模式有什么关系呢?架构是一套体系结构,是项目的整体解决方案;框架是可复用的半成品软件,是具体程序的代码。架构一般会设计到采用什么样的框架来加速和优化某部分问题的解决,而好的框转载 2014-12-25 14:18:42 · 157 阅读 · 0 评论 -
建造者模式(Builder)
建造者模式主要是为了消除其他对象复杂的创建过程。比如:有个用户UserInfo类,创建这个类,我们需要创建用户的姓名、年龄、金钱等信息,才能获得用户具体的信息结果,这时就可以创建一个UserInfoBuilder用户创建者类,来将UserInfo复杂的创建姓名、年龄、金钱等操作封装起来,简化用户类的创建过程。/** * 描述用户信息的一个类,包含用户的信息,如姓名,年龄,金钱 *原创 2014-12-25 15:41:43 · 205 阅读 · 0 评论 -
工厂方法模式(Factory Method)
简单工厂(静态工厂方法)简单工厂实际上不算一种模式,可以把它叫做一种常用写法。例如我们常用的数据库操作,为了适配不同的数据库引擎,可能分别编写了具体的数据库操作类(当然这些类都实现了统一的接口)://统一的操作接口,保证对于外部调用时透明统一的interface DBInterface{ public function connect(Arrat $params=array()); p原创 2014-12-25 15:21:28 · 212 阅读 · 0 评论 -
PHP设计模式之访问者模式
访问者模式实际上是让外部类能够获取树形结构的每个节点的对象,对每个对象进行操作的模式,它让我们在不改动原有树形结构的基础上扩展功能,比如统计等等。在这种模式下,必须有的几个要素:1、具体的元素对象,访问者实际要访问的位置(即节点)2、稳定的树形结构,每个节点都是一个元素对象,一般在组合模式下比较多,它提供给了让访问者能够进行访问的实际位置(即访问者访问的是具体的属性结构的某个节点的实例原创 2015-01-08 09:35:34 · 248 阅读 · 0 评论 -
RBAC基于角色的用户权限管理
美国国家标准与技术研究院(The National Institute Of Standards And Technology,NIST)标准RABC(Role-based policies Access Control)基于角色的访问控制模型由4个部件模型组合成,这4个部件模型分别是基本模型RBAC0(Core RABC)、角色分级模型RBAC1(Hierachal RBAC)、角色限制模型RB原创 2015-01-07 20:50:48 · 597 阅读 · 0 评论