设计模式
陌阡
天道无亲,常与善人
展开
-
php实现抽象工厂模式
设计模式-使用php实现抽象工厂模式【概要】创建型模式抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类【GOF95】【特点】抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类。【结构图】【主要角色】原创 2011-12-20 14:22:00 · 7665 阅读 · 0 评论 -
PHP 设计模式之观察者模式
介绍 现在有两派,有的人建议使用设计模式,有的人不建议使用设计模式!这就向写文章一样,有的人喜欢文章按照套路走,比如叙事性质的文章,时间,地点,人物,事件。而有的人喜欢写杂文或者散文,有的人喜欢写诗词!现在写代码很多地方类似于写文章,但是在有些地方比写文章需要更多的技能!写文章写多了一般也能写出优秀的文章,而代码也一样,写多了也能写出很多有些的代码!很多时候,我转载 2016-10-11 16:18:05 · 322 阅读 · 0 评论 -
Repository模式
最近开发的MVC项目使用了Repository模式。啥是Repository模式?从图看,有一个仓库接口,一个实现了这个仓库接口的基类;然后在使用方,一方面,要声明一个继承于仓库接口的子接口,另一方面,编写一个数据库操作类,继承仓库基类,并实现这个子接口。继承仓库基类容易理解,为啥还要搞一个子接口呢?直接实现仓库接口不就完啦?思考其中原因,应该是为了控制反转,依赖注转载 2016-02-25 17:44:50 · 531 阅读 · 0 评论 -
鸡肋的PHP单例模式
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。/* 单例模式举例,其要点如下: * * 1. $_instance 必须声明为静态的私有变量 * 2. 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序 new 类从而失去单例模式的意义 * 3. getInst转载 2015-09-07 20:26:43 · 611 阅读 · 0 评论 -
php实现适配器模式
设计模式-使用php实现适配器模式【概要】结构型模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作【GOF95】【结构图】【主要角色】目标(Target)角色:定义客户端使用的与特定领域相关的接口,这也就是我们所期待得到的源(Adaptee)角色:需要进行适配的接口适配器(Ada原创 2011-12-21 18:44:04 · 3105 阅读 · 0 评论 -
php实现工厂模式
设计模式-使用php实现工厂方法模式【概要】创建型模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF95】【结构图】【主要角色】抽象产品(Product)角色:具体产品对象共有的父类或接口具体产品(Concrete Product)角色:实现抽象产品角色所定义的接口,并且工厂方法模式所原创 2011-12-15 09:53:26 · 15272 阅读 · 2 评论 -
php实现建造者模式
设计模式-使用php实现建造者模式【概要】创建型模式建造者模式可以让一个产品的内部表象和和产品的生产过程分离开,从而可以生成具有不同内部表象的产品。【结构图】【主要角色】抽象建造者(Builder)角色:定义一个抽象接口,规范产品各个组成成分的建造(即规范具体建造者的方法实现)。其中所规范的方法中必须包括建造方法和结果返回方法具体建造者(ConcreteBuil原创 2011-12-20 16:05:44 · 2602 阅读 · 1 评论 -
php实现单例模式
【概要】创建型模式保证一个类仅有一个实例,并且提供一个访问它的全局访问点【GOF95】【特点】1、一个类只有一个实例2、它必须自行创建这个实例3、必须自行向整个系统提供这个实例【结构图】【主要角色】Singleton 定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类方法。负责创建它的唯一的实例。【优缺点】1、对唯一原创 2011-12-15 09:38:37 · 1935 阅读 · 0 评论 -
php实现原型模式
设计模式-使用php实现原型模式【概要】创建型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象【结构图】【主要角色】抽象原型(Prototype)角色:声明一个克隆自身的接口具体原型(Concrete Prototype)角色:实现一个克隆自身的操作【优缺点】Prototype模式优点:1、可以在运行时刻增加和删除产品2、可以改变值原创 2011-12-20 16:32:15 · 2967 阅读 · 1 评论 -
观察者模式应用场景实例
/** * 观察者模式应用场景实例 * * 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。 * * 场景描述: * 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如: * 1、购票后记录文本日志 * 2、购票后记录数据库日志 * 3、购票后发送短信 * 4、购票送抵扣卷、兑换卷、转载 2016-10-11 16:34:39 · 1912 阅读 · 1 评论