一.定义:
定义一个用于创建对象的接口,由子类决定实例化哪个类.(Factory Pattern)
创建型设计模式之一,应用十分广泛.
二.使用场景:
image.png在任何需要生成复杂对象的地方,都可以使用工程方法模式,用new就可以完成创建的对象无需使用工厂方法模式.
产品类
public abstract class Product {
public abstract void method();
}
产品A
public class ProductA extends Product {
@Override
public void method() {
Log.d("zll", "我是产品A ");
}
}
产品B
public class ProductB extends Product {
@Override
public void method() {
Log.d("zll", "我是产品B: ");
}
}
创建工厂
public abstract class TFactory {
public abstract <M extends Product> M createProduct(Class<M> cls);
}
public class TCreateFactory extends TFactory {
@Override
public <M extends Product> M createProduct(Class<M> cls) {
M product = null;
try {
//反射获取对象
product = (M) Class.forName(cls.getName()).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return product;
}
}
实现
TCreateFactory factory = new TCreateFactory();
ProductA product = factory.createProduct(ProductA.class);
product.method();
ProductB product1 = factory.createProduct(ProductB.class);
product1.method();
网友评论