• 设计模式之工厂模式


    将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目依赖关系的解耦。从而提高项目的扩展和维护性。

    一、简单工厂模式

    定义了一个创建对象的类,由这个类来封装实例化对象的行为代码。

    由一个工厂对象决定创建出哪一种产品类的实例。

    • 披萨项目需求:便于披萨种类的扩展,便于维护
    1. 披萨的种类很多 比如 GreekPizza、CheesePizza、PepperPizza等
    2. 披萨的制作有 prepare(准备),bake(烘烤), cut(切片), box(打包)
    3. 完成披萨店订购功能。

    方案:把创建Pizza的对象封装到一个类中,这样我们有新的Pizza种类时,只需要修改该类即可,其它有创建Pizza对象的代码就不需要修改了。

    二、工厂方法模式:

    定义一个用于创建对象的接口,让子类决定实例化哪一个类。

    工厂方法模式将对象的实例化推迟到子类

    抽象产品类Product:定义产品的共性,实现对事务最抽象的定义

    抽象工厂Creator:具体如何创建产品类是由工厂实现类ConcreteCreator完成。

    • 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨。
    1. 比如:北京的CheesePizza、北京的PepperPizza等或者是伦敦的CheesePizza、伦敦的PepperPizza等

    方案:将披萨项目的实例化功能抽象成抽象方法,在不同的口味点餐子类中具体实现。

    三、抽象工厂模式

    为创建一组相关或相互依赖的对象提供一种接口,而且无需指定他们的具体类

    四、JDK中的Calendar类使用了简单工厂方法模式

  • 相关阅读:
    (网络编程)基于tcp(粘包问题) udp协议的套接字通信
    (网络编程)理论 原理
    (网络编程) 介绍
    C++开源代码项目汇总
    Facial Landmark Detection
    人脸对齐ASM-AAM-CLM的一些总结
    Ello讲述Haar人脸检测:易懂、很详细、值得围观
    显示形状回归算法(ESR)代码介绍
    百度图像搜索探秘
    人脸特征点检测
  • 原文地址:https://www.cnblogs.com/wjh123/p/11341234.html
Copyright © 2020-2023  润新知