• 设计模式之抽象工厂模式


    这里将抽象工厂和工厂方法进行对比。

    从定义上说:

    Factory Method: 
    Define an interface for create an object,but let subclass decide which class to instantiate.Factory Method lets a class defer instantiation to the subclasses. 

    Abstract Factory: 
    Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

    工厂方法创建一般只有一个方法,创建一种产品。 
    抽象工厂一般有多个方法,创建一系列产品。

    具体来说,就是他们的目的不一样:

     
    工厂方法创建 "一种" 产品,他的着重点在于"怎么创建",也就是说如果你开发,你的大量代码很可能围绕着这种产品的构造,初始化这些细节上面。也因为如此,类似的产品之间有很多可以复用的特征,所以会和模版方法相随。 

    抽象工厂需要创建一些列产品,着重点在于"创建哪些"产品上,也就是说,如果你开发,你的主要任务是划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。

    本质上,Abstract Factory为什么Abstract,从FactoryMethod上抽象出来的。每个Abstract Factory创建的都是一条产品线,而这条产品线会有多个子类派生。

    Design Patterns一般是在设计阶段考虑的,真正编码的时候,是先看需求,然后考虑这些需求同哪些模式的适用场合匹配.实际开发中对代码修改后,很可能就随之改变了原来的模式特征,这也很正常,模式之间本来就是可以互相演化和关联的。

    设计模式背后的面向设计准则和面向设计特性都是一样的,所以每个模式看起来都有相似的地方,在做设计的时候,让设计模式慢慢的被发现和浮现出来,这样的过程也就是重构和软件系统演化的过程。

    参考链接:

    http://www.iteye.com/topic/18648 

  • 相关阅读:
    JavaScript的continue、break和return的区别
    JavaScript的函数和作用域闭包
    利用反射快速给Model实体赋值
    C# 多态的实现
    C# 去除字符串首尾字符或字符串
    C#中大List的内存分配
    C#实现对图片文件的压缩、裁剪操作实例
    StringBuilder String string.Concat 字符串拼接速度
    C# 事件浅析
    理解 Thread.Sleep 函数
  • 原文地址:https://www.cnblogs.com/willyan/p/2977187.html
Copyright © 2020-2023  润新知