目的:由工厂对象决定创建出哪一种产品实例
示例demo
##简单demo
LowBDemo
//动物类
public interface Animal{
void run();
}
//猫
public class Cat implements Animal{
@override
public void run (){
System.out.printLn("runA");
}
}
//狗
public class Dog implements Animal{
@override
public void run (){
System.out.printLn("runB");
}
}
//工厂类
public class Creator {
//私有化构造
private Creator(){}
/***
**@Param productName 判断值
*/
public static IProduct createProduct(String productName){
if (productName == null) {
return null;
}
if (productName.equals("A")) {
return new ProductA();
}else if (productName.equals("B")) {
return new ProductB();
}else {
return null;
}
}
}
代码当中还是存在着很多的else if等操作 所以需要消除、是一种垃圾代码
上面的demo简单、一个抽象类2个实现类、一个工厂类、工厂类的创建私有化构造方法,所以必须传入一个字符串去判断,然后生成对应的类型
网友评论