概述在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。意图提供一个创建一...
分类:
其他好文 时间:
2014-07-11 22:58:27
阅读次数:
205
简单工厂模式是由一个工厂对象来决定创建出哪一种产品类的实例(对象),就是由一个工厂类根据传入的参数来决定需要创建哪一种产品的对象或实例。
此模式主要涉及到工厂角色,抽象产品,具体产品三个角色
工厂类(Creator),此模式的核心,含有与应用紧密相关的商业逻辑,
抽象产品(Product),担任需要创建产品的父类,一般由一个java接口事抽象类来实现
具体产品(Concrete Produ...
分类:
其他好文 时间:
2014-07-09 12:18:01
阅读次数:
187
工厂方法模式相对于简单工厂模式的优点是为了更好的拓展,当如果再新加一种产品,对于简单工厂模式来说需要修改核心的工厂类,但对于工厂方法模式则不需要,在工厂方法模式中核心的工厂类不再负责创建所有产品的创建,而是将具体创建的工作交给了了类去实现,自己的核心类则变成一个抽象的工厂角色。
这种 进一步的抽象的结果 是可以允许系统在不修改工厂类的前提下引进新的产品。此模式涉及到四种 角色,分别如下:
抽象...
分类:
其他好文 时间:
2014-07-09 11:47:35
阅读次数:
199
简单工程模式:对具有相同功能的类进行抽象得到父类,这些类继承它成为子类。为了对这些功能进行选择,建立一个工厂类进行判断,其中运用一个Switch语句。
优点:结构简单、操作单一。
缺点:需要事先考虑周到,操作时需准确。由下的“功能扩展”中可知,易违背设计模式六大原则中的“开放-封闭原则”。
功能扩展:若增添功能方法,则需另添加一个类,在运算类中添加的相应的方法,再修改客户端中的Switch语句中的case项。
工厂方法模式(Factory Method):先建立一个...
分类:
其他好文 时间:
2014-07-08 14:34:46
阅读次数:
211
从网上查找资料的时候发现很多同学都写过这篇博客了,可见我的方向没有跑偏。虽然我们学设计模式的时候已经接触过抽象工厂模式,大话设计模式中每个设计模式都紧密联系生活,而且主人公讲的也相当有趣,但是真正运用起来却没那么简单。可以说小菜只是帮我们理解了各个设计模式的用途以及有确定,真正的理解还需要我们自己动手实践。
为什么要用抽象工厂?
主要就是为了提高软件的灵活性,运用抽象工厂+反射+配置文...
分类:
其他好文 时间:
2014-07-06 11:25:23
阅读次数:
148
设计模式我觉得是前人总结的,为了解决一类问题而总结的代码设计经验。最初可能为了使用而使用,后面就会发现,很多没想到的问题因为使用了正确的设计模式已经为你考虑到了。《design patterns设计模式》这本书是程序员进阶必学。...
分类:
编程语言 时间:
2014-07-06 00:54:38
阅读次数:
245
简单工厂模式属于工厂模式的一种,工厂模式总共有三种,分别是简单工厂模式,工厂方法模式和抽象工厂模式,三者有一个共同点,就是对象的创建都交给了工厂去做。从简单工厂模式到抽象工厂模式,抽象级别逐渐升高。工厂模式包括三个部分:工厂角色,抽象产品角色和具体产品角色。工厂角色是工厂模式的核心,由它决定创建哪个...
分类:
其他好文 时间:
2014-07-03 23:00:29
阅读次数:
285
因为在上篇文章已经介绍过何为三层,在这就不在介绍,这篇文章的主要内容是介绍三层+设计模式后该怎样实现。首先要做的就是在哪加,怎样加? 三层基本的目的是解耦合,实现各个层之间的分离,从而做到改变一个尽可能不影响其它的层。所以能够在B层和D层加一个抽象工厂模式,来实现此目的。例如以下图: 当然还...
分类:
其他好文 时间:
2014-07-02 21:53:04
阅读次数:
249
设计模式粗浅理解之------简单工厂模式什么是简单工厂模式从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家...
分类:
其他好文 时间:
2014-07-02 21:14:21
阅读次数:
232
设计模式-使用php实现工厂方法模式【概要】创建型模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF95】【结构图】【主要角色】抽象产品(Product)角色:详细产品对象共同拥有的父类或接口详细产品(Concrete Pro...
分类:
Web程序 时间:
2014-07-02 10:21:17
阅读次数:
243