zoukankan      html  css  js  c++  java
  • 设计模式(四):SIMPLE FACTORY简单工厂模式 -- 创建型模式

    1.定义

     简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。

      

    2.适用场景

    如果一个客户要一款宝马车,一般的做法是客户去创建一款宝马车,然后拿来用。后来出现工业革命。用户不用去创建宝马车。因为客户有一个工厂来帮他创建宝马.想要什么车,这个工厂就可以建。比如想要320i系列车。工厂就创建这个系列的车。即工厂可以创建产品。

      

    3.评价

    优点

          工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。

    缺点 :

          由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。

      当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;

      这些缺点在工厂方法模式中得到了一定的克服。

    4. 模式结构

    1. 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。
    2. 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。         
    3. 具体产品角色:工厂类所创建的对象就是此角色的实例。

    5.案例说明

    (1) GG请自己的女朋友和众多美女吃饭,但是GG自己是不会做饭的或者做的饭很不好,这说明GG不用自己去创建各种食物的对象;各个美女都有各自的爱好,到麦当劳后她们喜欢吃什么直接去点就行了,麦当劳就是生产各种食物的工厂,这时候GG不用自己动手,也可以请这么多美女吃饭,所要做的就是买单O(∩_∩)O哈哈~,其UML图如下所示:

     

     

    6.参考

      [1]Gof:设计模式。

      [2]百度百科:http://baike.baidu.com/view/1227908.htm。

      [3]http://blog.csdn.net/hguisu/article/details/7505909。

      [4]http://www.cnblogs.com/DebugLZQ/archive/2012/02/29/2373609.html。

      [5]http://blog.csdn.net/weiwenlongll/article/details/6918164。

  • 相关阅读:
    对公信贷系统与其他系统交互方式总结
    测试验收标准checklist
    测试风险汇报
    接口测试checklist
    52 | 深入浅出网站可扩展性架构设计
    51 | 深入浅出网站伸缩性架构设计
    html元素类型 块级元素、内联元素(又叫行内元素)和内联块级元素。(转载)
    IO流
    多线程
    Java网络编程
  • 原文地址:https://www.cnblogs.com/haore147/p/3866469.html
Copyright © 2011-2022 走看看