`

OO设计模式-工厂方法模式

 
阅读更多
      最近在看OO设计模式,觉得设计模式还是挺有用的。现在只是对设计模式的诸多特性进行记录,呵呵,这不是我的发明,算是对学习的笔记吧。以后会见GOF23种设计模式逐一进行记录和分析,废话少说,先说工厂方法模式:

1、理解:
    将对象的具体创建过程剥离,客户端无需知道对象是怎么创建的,只需要使用对象。封装对象的创建过程,将散落在系统各个角落的判断逻辑给集中起来。
2、类图:


3、设计对象:
    抽象产品: 负责定义具体产品的功能集
    具体产品: 负责实现抽象产品的约定
    创建者: 负责依据不同的规则创建具体的产品
    客户端:调用创建者创建具体产品

4、变体:  
    创建者和具体产品合并,创建对象的方法变成静态方法,具体产品的构造方法为私有方法,便演变成单例模式

5、优点和用途:
     符合面向接口编程原则,客户端无需关注具体创建产品的具体类型,只需要通过创建者创建产品,使用就OK了。具体的创建逻辑交由创建者管理。
     符合开闭原则,新增一个具体产品,对原先产品的逻辑没有影响,对扩展开发对修改关闭,但要使用新产品的客户端必须修改代码适配
     符合将变化的东西集中起来,避免散落在系统的各个角落,新增具体产品,只需要将创建者的创建逻辑修改,而不会波及到具体产品的使用和运行。

6、缺点:
     当产品类型过多的时候,便会造成每个抽象产品需要一个创建者,造成类爆炸。为了避免这种现象发生,可以将创建者和抽象产品合并,在多层次的产品结构中,可以使用抽象工厂方法模式来解决这个问题(下一节会讲到)。

7、应用:
    JDK 中很多地方用到。如格式日期的SimpleDataFormat、如字节码加载器、很多项目的工具类。
  • 大小: 20.5 KB
分享到:
评论

相关推荐

    《设计模式--基于C#的工程化实现及扩展》.(王翔).rar.rar

    本书涵盖了各种经典的设计模式,包括创建型模式(如单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式)、结构型模式(如适配器模式、桥接模式、装饰模式、组合模式、外观模式、代理模式、享元模式)以及行为...

    设计模式-可复用面向对象软件的基础.rar

    1. 创建型模式(Creational Patterns):关注对象的创建过程,如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。...

    c#代码介绍23种设计模式-02简单工厂模式(附代码)

    在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类。 我们平常编程中,当使用"new"关键字创建一个对象时,此时该类就依赖与这个对象,也就是他们之间的耦合度高, 当需求变化时,我们就不得不去修改...

    OO中对于23种设计模式的整理

    OO 中的 23 种设计模式的整理 在面向对象编程(Object-Oriented Programming,OO)中,设计模式(Design Pattern)是指在软件设计中普遍存在的问题和解决方案的总结。OO 中的 23 种设计模式是指 GoF(Gang of Four...

    Head.First 设计模式学习笔记.pdf

    - **工厂方法模式**:工厂方法模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂方法让类的实例化延迟到子类。这种模式的核心在于定义了一个抽象工厂方法,然后由各个子类...

    23个设计模式标准OO结构

    3. 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 4. 建造者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5...

    设计模式入门指导

    在探讨设计模式的入门知识之前,我们需要对面向对象(Object-Oriented,OO)和面向过程(Procedure-Oriented)的编程思想有所了解。面向过程的编程是以事件为中心的,注重于具体的操作步骤,如C语言就是面向过程编程...

    head first 设计模式

    4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板方法模式 封装算法 9 选代器与组合模式 管理良好的集合 10 状态模式 事物的状态 11 代理模式 控制...

    Head First设计模式 中文 高清

    4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板方法模式 封装算法 9 选代器与组合模式 管理良好的集合 10 状态模式 事物的状态 11 代理模式 控制...

    Head First(Design Patterns) 设计模式英文原版

     4工厂模式烘烤OO的精华  5单件模式独一无二的对象  6命令模式封装调用  7适配器模式与外观模式随遇模式  8模板方法模式封装算法  9选代器与组合模式管理良好的集合  10状态模式事物的状态  ...

    基于面向对象和设计模式的电厂工作票软件模块的设计.pdf

    本文探讨了在电力行业中,如何利用面向对象的方法和设计模式来优化电厂工作票软件模块的设计。面向对象(Object-Oriented, OO)编程是一种软件开发范式,它将程序中的数据和功能封装在“对象”中。而设计模式则是...

    面向对象的思想与设计模式

    这里提到的三种工厂模式是设计模式中的创建型模式,主要用于对象的创建。 1. 简单工厂模式:它定义了一个用于创建对象的静态工厂方法,客户端通过调用这个方法来获取所需的对象,而无需知道具体创建的过程。简单...

    Head.First.设计模式.中文版 1-8章

    Head.First.设计模式.中文版 1 欢迎来到设计模式世界:设计模式入门 ...4 工厂模式:烘烤OO的精华 5 单件模式:独一无二的对象 6 命令模式:封装调用 7 适配器模式与外观模式:随遇而安 8 模板方法模式:封装算法

    java设计模式之面向对象的思想(think in OO(Object Oriented))

    1. 工厂模式(Factory Pattern):工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但让子类决定实例化哪一个类。这将类的实例化过程延迟到子类进行,增强了程序的可扩展性。 2. 单例模式(Singleton ...

    函数式编程中的设计模式.pdf

    例如,Currying和高阶函数(Higher-order functions,HOF)在函数式编程中扮演了类似工厂模式的角色,它们都是用于创建和操作函数的模式,但使用方式和OO设计模式不同。 总结来说,文档试图传达的信息是,函数式...

    oodesign pattern

    "oodesign pattern" 提到的核心是面向对象设计模式,这是一种在面向对象编程中广泛使用的、经过实践验证的设计策略。设计模式是对在特定上下文中反复出现的问题及其解决方案的一种描述,它们提供了一种标准的方法来...

Global site tag (gtag.js) - Google Analytics