工厂方法模式(FactoryMethod)——创建型模式

工厂方法模式的意图:

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

工厂方法模式的结构图如下:

工厂方法模式(FactoryMethod)——创建型模式_第1张图片

工厂方法模式的java代码实现:

先构造出抽象产品类型(Product):也就是对待构造类型抽象后的接口。

再构造出具体产品类型(ConcreteProduct):具体待构造的类型,需要由工厂延迟实例化。

package factorymethod;
public interface Product {}

package factorymethod;
public class ProductA implements Product{}
package factorymethod;
public class ProductB implements Product{}

工厂类型的抽象接口(Factory)

package factorymethod;
public interface Factory {
	Product newInstance();
}

具体工厂类型(ConcreteFactory)

package factorymethod;

class FactoryA implements Factory{
	@Override
	public Product newInstance() {
		return new ProductA();
	}
}

class FactoryB implements Factory{
	@Override
	public Product newInstance() {
		return new ProductB();
	}
	
}

工厂方法模式的适用性:

1、客户程序需要隔离自己与待new()类型间的耦合关系。

2、开发阶段客户程序还无法明确预知需要new()的具体类型。

3、客户程序将new()的工作交给外部对象来完成。

4、各种需要new()的对象虽然可以统一抽象为某个接口,但他们的继承关系太过繁琐,层次也比较复杂,这时,同样可以通过工厂方法解决这个问题。


你可能感兴趣的:(工厂方法模式(FactoryMethod)——创建型模式)