随笔分类 -  php 设计模式

摘要:代理模式(Proxy Pattern) : 给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式 模式动机: 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用 阅读全文
posted @ 2018-12-18 01:30 飞翔的贺兰猪 阅读(172) 评论(0) 推荐(0)
摘要:迭代器模式:迭代器模式是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。 UML类图: 角色: Iterator(迭代器):迭代器定义访问和遍历元素的接口 ConcreteIterat 阅读全文
posted @ 2018-12-17 09:25 飞翔的贺兰猪 阅读(160) 评论(0) 推荐(0)
摘要:把咖啡做成一个单独的类,其他的咖啡,比如牛奶咖啡,甜味咖啡,我们只对材料单独包装成一个类 详解 1》对于饮品,我们直接继承Beverage类,直接把报价写进饮品类里面; 2》而对于一些需要添加调味品的特殊饮品,我们做累加操作。比如,我想要杯奶咖啡,则 总价=咖啡价+奶价 3》这样不同的饮料就很容易知 阅读全文
posted @ 2018-12-13 17:59 飞翔的贺兰猪 阅读(198) 评论(0) 推荐(0)
摘要:命令链模式以松散耦合主题为基础,发送消息、命令和请求,或通过一组处理程序发送任意内容。每个处理程序都会自行判断自己能否处理请求。如果可以,该请求被处理,进程停止。您可以为系统添加或移除处理程序,而不影响其他处理程序。 命令链模式可以使用在用户登陆注册的时候处理不同角色用户的业务逻辑,与变量值 定义多 阅读全文
posted @ 2018-12-13 11:20 飞翔的贺兰猪 阅读(399) 评论(0) 推荐(0)
摘要:单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new简历实例对象的方法。那么注册树模式想解决的问题是什么呢?首先我们看一下上面两种模式的局限: 首先,单例模式创建唯一对象的过程,本身还有一种判断,需要判断对象是否存在。每次创建实例对象都需要判断。 其次,工厂模式更 阅读全文
posted @ 2018-12-13 10:33 飞翔的贺兰猪 阅读(134) 评论(0) 推荐(0)
摘要:单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的。所有的单例模式至少拥有以下三种公共元素: 1. 它们必须拥有一个构造函数,并且必须被标记为private2. 它们拥有一个保存类的实例的静态成员变量3. 它们拥有一个访问这个实例的公共的静态方法 三 阅读全文
posted @ 2018-12-13 10:14 飞翔的贺兰猪 阅读(102) 评论(0) 推荐(0)
摘要:工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。 通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a 阅读全文
posted @ 2018-12-12 14:56 飞翔的贺兰猪 阅读(213) 评论(0) 推荐(0)
摘要:1.适配器模式: 能够将截然不同的函数接口封装成统一的API 2.实际应用举例,PHP的数据库操作有mysql, mysqli, pdo3种。能够用适配器模式统一成一致。相似的场景还有cache适配器,就是将memcache,redis,file,apc等不同的缓存函数统一成一致的 3.以下的样例能 阅读全文
posted @ 2018-12-12 11:36 飞翔的贺兰猪 阅读(145) 评论(0) 推荐(0)
摘要:策略模式(Strategy pattern)是行为类模式中的一个类型。行为类模式用来说明一个应用是如何运作的。 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 根据情况传入特定的参数,执行特定的算法,返回特定的数据。 封装:把行为用接口封装起来 阅读全文
posted @ 2018-12-12 10:57 飞翔的贺兰猪 阅读(137) 评论(0) 推荐(0)
摘要:观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新。 【观察者模式的优点和缺点】 观察者模式的优点: 1.观察者和主题之间的耦合度较小;2.支持广播通信; 观察者模式的缺点: 由于观察者并不知道其它观察者的存在,它可能对改变目标的最终代价一无所知。这可能 阅读全文
posted @ 2018-12-11 17:00 飞翔的贺兰猪 阅读(135) 评论(0) 推荐(0)
摘要:原型模式(Prototype Pattern):与工厂模式类似,都是用来创建对象的。利用克隆来生成一个大对象,减少创建时的初始化等操作占用开销 (一)为什么需要原型模式 1,有些时候,我们需要创建多个类似的大对象。如果直接通过new对象,开销很大,而且new完还得进行重复的初始化工作。可能把初始化工 阅读全文
posted @ 2018-12-11 15:09 飞翔的贺兰猪 阅读(157) 评论(0) 推荐(0)
摘要:1、模式定义 在了解数据映射模式之前,先了解下数据映射,它是在持久化数据存储层(通常是关系型数据库)和驻于内存的数据表现层之间进行双向数据传输的数据访问层。 数据映射模式的目的是让持久化数据存储层、驻于内存的数据表现层、以及数据映射本身三者相互独立、互不依赖。这个数据访问层由一个或多个映射器(或者数 阅读全文
posted @ 2018-12-11 14:28 飞翔的贺兰猪 阅读(287) 评论(0) 推荐(0)