• 六个创建模式之简单工厂模式(Simple Factory Pattern)


    定义:
    定义一个工厂类,它可以根据参数的不同生成对应的类的实例;被创建的类的实例通常有相同的父类。因为该工厂方法尝尝是静态的,所以又被称为静态工厂方法(Static Factory Method)

    结构图:

    • Factory:工厂类,工厂模式的核心。负责创建所有产品实例的内部逻辑,被外界直接调用,返回抽象类Product.
    • Product:抽象产品类,封装了各种产品的公有方法,利于提高系统的可扩展性。
    • ConcreteProduct:具体产品类,工厂创建目标。继承或实现了抽象产品类的抽象方法,含有具体产品功能的执行逻辑。

    注意:

    • 传统情况下客户端会直接调用工厂类的静态方法,并指定对应的参数。如果需要更改对应的产品,则需要重新变音。因此可以考虑引入配置文件来指定具体产品类。
    • 有时为了简化,可以将抽象产品类和工厂类合并,在抽象产品类中实现静态工厂方法。

    优点:

    • 工厂类将对象的创建和使用分类开来,符合了单一职责原则。
    • 客户端无序知道具体产品的类名,只需要知道具体产品类对应的参数即可,隐藏了具体产品创建的细节。
    • 通过配置文件,可以在不修改客户端代码的情况下更换和增加新的具体产品类。

    缺点:

    • 工厂类集中了所有的具体产品创建的职责,一旦不能使用,整个系统将无法使用。
    • 如果添加新类,则需要修改工厂类,当产品类型多时,不利于整个系统的扩展和维护。
    • 使用了静态方法,造成工厂角色无法形成基于继承的等级结构。

    适用场景:

    • 具体产品类的数目比较少,创建逻辑比较简单。
    • 客户端只需要知道传入工厂的参数,对于如何创建对象并不关心。

    实例:

    SimpleFactoryPattern.java

  • 相关阅读:
    关于applet
    Hello.java
    filter用户授权的例子
    logfilter
    Java EE课程设计——企业人力资源管理系统
    条件查询、SQL、JPQL、HQL比较
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于JSON
  • 原文地址:https://www.cnblogs.com/zhangfei614/p/5993436.html
Copyright © 2020-2023  润新知