普通工厂模式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;
}
}
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;
}
}
相关文章推荐
- 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 工厂方法模式(Factory Method) 工厂方法模式分为三种:普通工厂模式 多个工厂方法模式 静态工
- 普通工厂模式、工厂方法模式、抽象工厂模式
- 创建型模式:工厂模式(简单工厂模式,抽象工厂模式,工厂模式)
- Android设计模式之普通工厂模式
- C#设计模式之工厂模式(Factory)--04 抽象工厂模式中访问具体产品类的属性
- 设计模式 -创建型模式 ,工厂模式 抽象工厂模式(1)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- 工厂模式、工厂方法模式和抽象工厂模式的差异分析
- c#工厂模式与抽象工厂模式
- 区别:简单工厂模式、工厂方法模式、抽象工厂模式
- 简单工厂模式,工厂方法模式和抽象工厂模式
- 工厂模式(简单工厂模式, 工厂方法模式, 抽象工厂模式)三
- 设计模式:工厂方法与抽象工厂模式
- 简单工厂模式、工厂方法模式、抽象工厂模式 、策略模式及策略与工厂之间的区别
- iOS经常使用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
- 对设计模式的总结之工厂方法模式和抽象工厂模式
- JAVA设计模式之普通工厂模式
- [设计模式] - No.1 详解简单工厂模式、工厂模式和抽象工厂模式
- Android设计模式之普通工厂模式
- 抽象工厂模式(工厂模式5)