Java设计模式——工厂方法模式

文章目录

  • 1、简介
  • 2、推荐实现案例
  • 3、优缺点
    • 3.1 优点
  • 4、应用场景
  • 5、注意事项
  • 6、拓展
    • 6.1 缩小为简单工厂模式
    • 6.2 升级为多个工厂类
    • 6.3 替代单例模式
    • 6.4 延迟初始化
  • 7、最佳实践

1、简介

Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的
接口, 让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。)

以女娲造人为例:

首先对造人过程进行分析,该过程涉及三个对象:女娲、八卦炉、三种不同肤色的人。女娲可以使用场景类Client来表示,八卦炉类似于一个工厂,负责制造生产产品( 即人类),三种不同肤色的人,他们都是同一个接口下的不同实现类,对于八卦炉来说都是它生产出的产品。

类图比较简单,AbstractHumanFactory是一个抽象类,定义了一个八卦炉具有的整体功能,HumanFactory为实现类,完成具体的任务——创建人类;Human接口是人类的总称,其三个实现类分别为三类人种;NvWa类是一个场景类,负责模拟这个场景,执行相关的任务。

以上就是工厂方法模式。

工厂方法模式的通用类图:

public class HumanFactory {public static T extends Human> T createHuman(ClassT> c){    //定义一个生产出的人种    Human human=null;    try {//产生一个人种human = (Human)Class.forName(c.getName()).newInstance()

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月13日
下一篇 2019年6月14日

相关推荐