码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂模式

时间:2019-08-15 22:37:01      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:高项   bsp   erp   epp   pre   统一   height   准备   info   

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

一、简单工厂模式

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

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

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

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

 

二、工厂方法模式:

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

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

技术图片

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

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

 

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

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

三、抽象工厂模式

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

技术图片

 

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

设计模式之工厂模式

标签:高项   bsp   erp   epp   pre   统一   height   准备   info   

原文地址:https://www.cnblogs.com/wjh123/p/11341234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!