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

类似于一个车场可以制造很多类型的车,如轿车,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;
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值