创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都能够提供对象的创建和管理职责。其中的单例模式和原型模式非常容易理解,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新对象,这两个不容易混淆。下面主要分析其它三种模式。
一、工厂方法模式VS建造者模式
1、意图不同
在工厂方法模式里,关注的是一个产品整体,无须关心产品的...
分类:
其他好文 时间:
2014-08-22 21:11:29
阅读次数:
197
简单工厂模式的最大优点在于工厂类中包含了必要逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算...
分类:
其他好文 时间:
2014-08-22 15:45:08
阅读次数:
128
对于类而言,为了让客户端获取它资深的一个实例,最常用的方法就是提供一个共有的构造器。还有一种放你发,也应该子每个程序员的工具箱中占有一席之地。类可以提供一个共有的静态 工厂方法,它只是返回类的实例的静态方法。
类可以通过静态工厂方法类提供它的客户端(对象),而不是通过构造器。提这样做的好处有:
1.静态工厂方法与构造器不同的第一大优势在于,它们有名称.比如构造器BigInteger(int,i...
分类:
编程语言 时间:
2014-08-21 00:15:18
阅读次数:
230
1、工厂方法模式意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。2、应用场景:考虑一个榨汁机的应用场景。榨汁机可以用来制作苹果汁、西瓜汁、橘汁等,即榨汁机可以用来制作水果汁。但是,夏天的冷饮店中,为了提高制作水果汁的效率和防止味道...
分类:
其他好文 时间:
2014-08-20 22:23:32
阅读次数:
234
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2014-08-20 08:09:46
阅读次数:
331
抽象工厂
抽象工厂:多个抽象产品类,派生出多个具体产品类;一个抽象工厂类,派生出多个具体工厂类;每个具体工厂类可创建多个具体产品类的实例。
即提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体的类。“一对多”的关系。
优点:
1、抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建。
2、当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。
3、增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。
缺点:
增...
分类:
其他好文 时间:
2014-08-19 02:09:23
阅读次数:
228
前言点击查看:设计模式系列如果你对工厂模式这个概念不是很理解,建议:设计模式-简单工厂模式如果你对.net反射机制不了解,建议:.net反射详解工厂方法模式描述一下工厂方法的概要:简单工厂模式是要在工厂类中通过数据来做个决策,在工厂类中的多个类中实例化出来其中一个要用到的类,做运算。而工厂方法模式则...
分类:
其他好文 时间:
2014-08-18 18:01:12
阅读次数:
210
设计模式-使用php实现工厂方法模式【概要】创建型模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF95】【结构图】【主要角色】抽象产品(Product)角色:详细产品对象共同拥有的父类或接口详细产品(Concrete Pro...
分类:
Web程序 时间:
2014-08-18 13:03:42
阅读次数:
286
工厂模式有两种类型:工厂方法模式和抽象工厂模式工厂方法模式定义:定义了一个创建对象的接口(这里的接口并不是单单是指java中的interface),但由子类决定实例化的类是哪一个。工厂方法让类把实例化推迟到子类中。抽象工厂模式定义:提供一个接口(这里的接口并不是单单是指java中的interface...
分类:
其他好文 时间:
2014-08-17 22:34:23
阅读次数:
415
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建型模式分类: 简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。有点抽象,举个例子就明白了。有一家生产处理器核的厂家,它只有一个工厂,....
分类:
编程语言 时间:
2014-08-16 16:19:00
阅读次数:
315