定义
在软件设计中,如果客户想手动创建一个对象,需要知道对象的详细结构,包括其数据结构以及方法调用,如果运气不好,还可能因为该对象引用了其他对象,导致客户端还得了解其他对象,如此..使得该对象的创建变得复杂起来。之前讲过的工厂方法模式可以解决该类问题,不过工厂方法模式一般用来解决单个对象的创建,对于需要创建多个有关联的对象,那么可能就需要使用抽象工厂模式的方法了。此时,客户端只需要知道抽象出来的...
分类:
其他好文 时间:
2015-01-14 12:52:20
阅读次数:
528
Motivation在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求变化,往往存在更多系列对象的创建工作。如何对应这种变化?如果绕过常规的对象创建方法(New),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合。Intent提供一个接口,让该接口负...
分类:
其他好文 时间:
2015-01-13 14:13:02
阅读次数:
138
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2015-01-12 17:09:34
阅读次数:
249
定义:为创建一组相关或相互依赖的对象提供一个接口,并且无需指定他们的详细类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的差别 抽象工厂模式是工厂方法模式的升级版本号,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的差别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对...
分类:
其他好文 时间:
2015-01-02 21:06:23
阅读次数:
223
【设计模式】 分类一. 创建型 简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 创建者模式(Builder) 原型模式(Prototype) 单例模式(Singleton)二. 结构型 外观模...
分类:
其他好文 时间:
2015-01-02 15:48:45
阅读次数:
173
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 好处:易于交换产品系列,由于具体工厂类在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。它让具体的创建实例过程与客户端分离,客户...
分类:
其他好文 时间:
2014-12-30 09:57:33
阅读次数:
178
之前看了一些关于工厂模式和抽象工厂模式的资料,了解了工厂模式和抽象工厂模式的特点和区别。今天再回来看自己之前写的笔记,又开始迷惑了,下面把自己的一些迷惑和想法记录下来。
1.什么地方会用到简单工厂模式?
在很多开源库中都会出现跨平台的问题。假设有一个窗口模块(即为一个dll),该模块提供窗口的基本功能比如设置标题、设置窗口背景颜色等。在不同的平台里,创建窗口需要调用不同的API,比如w...
分类:
其他好文 时间:
2014-12-30 00:34:16
阅读次数:
180
模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。为了更清晰地理解工厂方法模式,需要先引入两个概念:产品等级...
分类:
其他好文 时间:
2014-12-24 11:36:46
阅读次数:
133
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2014-12-23 17:00:13
阅读次数:
386
概述
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
适用性
1.一个系统要独立于它的产品的创建、组合和表示时。
2.一个系统要由多个产品系列中的一个来配置时。
3.当你要强调一系列相关的产品对象的设计以便进行联合使用时。
4.当你提供一个产品类库,而只想显示它们的接口而不是实现时。...
分类:
其他好文 时间:
2014-12-22 22:50:26
阅读次数:
240