您的位置:首页 > 其它

普通工厂模式and抽象工厂模式

2017-10-22 23:22 141 查看
类似于一个车场可以制造很多类型的车,如轿车,SUV,客车。客户不需要知道具体的车是那个车场制造的,只要知道是什么牌子的就可以了。

1.普通工厂模式:定义一个产品接口,所有产品实现这个接口,比较简单。此时把IProduct定义为一个接口,Product1,Product2实现类:工厂-->产品

public class Car{

public static  ICar createProduct(String productNo){

switch(productNo){

case "1" return new Product1(***);

case "2" return new Product2(***);

default :throw new NotSupportedException("为支持此编号生产的产品");

}

}

}

2.抽象工厂模式:比普通工厂模式复杂,当车的类型比较多的时候就需要多个工厂生产形成:抽象工厂-->具体工厂-->产品的关系

2.1工厂接口:

public interface IProductFactory{

public IProduct createProduct(String productNo);

}

2.2具体工厂:

public class ProductFactory1 implements IProductFactory{
public IProduct createProduct(String productNo){
IProduct product=***;
return product
}

}

public class ProductFactory2 implements IProductFactory{
public IProduct createProduct(String productNo){
IProduct product=***;
return product
}

}

2.3:创建产品:

public class ProductFactory implements IProductFactory {
public static IProduct createProduct(String productNo) {
char ch = productNo.charAt(0);
IProductFactory factory = null;
if (ch == '1') {
factory = new productFactory1();
} else if (ch == '2') {
factory = new productFactory2();
}
if (factory != null) {
return factory.createProduct(productNo);
}
return null;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐