zoukankan      html  css  js  c++  java
  • 设计模式之抽象工厂模式

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

    从定义上说:

    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 

  • 相关阅读:
    jQuery中的prop和attr区别
    echarts 不同区域背景色不同 废了我一天的时间
    echarts 饼状图 改变折线长度
    jqGrid有关问题 小知识点
    echarts页面中多图自适应
    bootstrap详解 见网址
    前端自适应布局方法总结
    前端页面中如何在窗口缩放时让两个div始终在同一行显示
    Vue2.0 v-for 中 :key 到底有什么用?
    sublime中安装package control总是失败
  • 原文地址:https://www.cnblogs.com/willyan/p/2977187.html
Copyright © 2011-2022 走看看