天天看点

Java设计模式--工厂模式简单工厂方法模式(别名:虚拟构造)Simple Factory Pattern(Another Name: Virtual Constructor)类图模式的结构与使用简单的例子工厂模式的优点适用工厂模式的情景下载源码请到

定义一个用于创建对象的接口,让子类决定实例化哪一个类。factory method使一个类的实例化延迟到其子类。

define an interface for creating an object, but let subclasses decide which class to instantiate. factory method lets a class defer instantiation to subclasses.

Java设计模式--工厂模式简单工厂方法模式(别名:虚拟构造)Simple Factory Pattern(Another Name: Virtual Constructor)类图模式的结构与使用简单的例子工厂模式的优点适用工厂模式的情景下载源码请到

工厂方法模式的结构中包括四个角色。

+ 抽象产品(product):抽象类或接口,负责定义具体产品必须实现的方法。

+ 具体产品(concrete product):具体产品是一个类,如果product是一个抽象类,那么具体产品是product的子类;如果product是一个接口,那么具体产品去实现接口。

+ 构造者(creator):一个接口或者抽象类。构造者负责定义一个称作工厂方法的抽象方法,该方法返回具体产品类的实例。

+ 具体构造者(concrete creator):具体构造者重写工厂方法使该方法返回具体产品的实例。

使用工厂模式可以让用户的代码和某个特定类的子类的代码解耦。

工厂方法的使用用户不必知道它所使用的对象是怎么被创建的,只需要知道该对象有哪些方法即可。

用户需要一个类的子类的实例,但不希望与该类的子类形成耦合。

用户需要一个类的子类的实例,但用户不知道该类有哪些子类可用。

<a href="https://github.com/androidwolf">mygithub</a>