1.2 creational 创建型 - factory 工厂模式

Factory Method Pattern 工厂方法模式

[TOC]

创建型设计模式
又名 Factory Pattern 工厂模式、Polymorphic Factory Pattern 多态工厂模式、Virtual Constructor Pattern 虚拟构造器模式

简介

  • 将创建Product的创建过程交给专门的Factory子类来完成。
  • 所有的具体工厂子类都有一个共同的抽象工厂父类。
  • 工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象。目的是将产品类的实例化操作延迟到工厂子类中完成。

四种角色:Factory、Concrete Factory 、Product、Concrete Product

角色 个数
Factory:抽象工厂 一个
Concrete Factory 具体工厂 多个
Product: 抽象产品 一个
Concrete Product:具体产品 多个

类图

FactoryMethod.png

优点

* 使用了面向对象的多态性,添加产品的时候无需修改抽象工厂、抽象产品、具体工厂类及其他具体产品类,完全符合开闭原则

缺点

* 新增产品,需要成对增加类(具体工厂类和具体产品类),增加了额外的开销。
* 抽象层的引入增加了系统的抽象性和理解难度,实现时可能需要用到DOM、反射等技术,增加了系统的实现难度。

应用 JDBC中connector的创建、学生、志愿者 以学雷锋的名义帮助老人买菜,换洗衣物

  • JDBC中connector的创建
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=DB;user=sa;password=");
Statement statement=conn.createStatement();
ResultSet rs=statement.executeQuery("select * from UserInfo");
  • 《大话设计模式》 中举例:学生、志愿者 以学雷锋的名义帮助老人买菜,换洗衣物
    不同身份的人以学雷锋的名义帮助老人,这里的角色:
    • Product是雷锋
    • Concrete Product 是学雷锋的学生a、学雷锋的志愿者a
    • Factory是雷锋工厂
    • Concrete Factory 是学生工厂、志愿者工厂。
  • 自己项目举例:
    //todo

你可能感兴趣的:(1.2 creational 创建型 - factory 工厂模式)