工厂方法(FactoryMethod)-对象创建型模式。
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.
1、抽象产品(Product):
-定义了工厂方法所创建的对象的接口
2、具体产品(ConcreteProduct):
-实现Product接口
3、抽象工厂(Creator):
-声明工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。
-可以调用工厂方法以创建一个Product对象
4、具体工厂(ConcreteCreator):
-重定义工厂方法以返回一个ConcreteProduct实例。
public abstract class Creator { public abstract <T extends Product> T createProduct(Class<T> c); }
public class ConcreteCreator extends Creator { public <T extends Product> T createProduct(Class<T> c){ Product product=null; try { product = (Product)Class.forName(c.getName()).newInstance(); } catch (Exception e) { } return (T)product; } }
工厂方法体现了依赖倒置原则,依赖于抽象product。
原文:https://www.cnblogs.com/diameter/p/13164546.html