抽象工厂设计模式
程序员文章站
2022-06-15 14:16:24
...
解决问题:创建一系列相关的对象,不需要指定具体类。
特点:抽象工厂定义了用于创建不同产品的接口, 但将实际的创建工作留给了具体工厂类。 每个工厂类型都对应一个特定的产品变体。
定义通用接口1&2...--->具体类实现具体方法---->定义实际创建对象的接口/抽象类--->子类继承决定创建哪个具体类
public abstract class AbstractProduct1{//通用产品接口1
public abstract void method();
}
public class CreteProduct1 extends AbstractProduct1{//具体产品1
public void method(){
System.out.println("111111111111");
}
}
public class CreteProduct2 extends AbstractProduct1{//具体产品2
public void method(){
System.out.println("222222222222");
}
}
public abstract class AbstractProdect2{//通用接口2
public abstract void method();
}
public class CreteProduct3 extends AbstractProduct2{//具体产品3
public void method(){
System.out.println("333333333333");
}
}
public class CreteProduct4 extends AbstractProduct2{//具体产品4
public void method(){
System.out.println("44444444444444");
}
}
public abstract class AbstractFactory{//基础创建者
public abstract AbstractProduct1 createProduct1();
public abstract AbstractProduct2 createProduct2();
}
public class CreteFactory1 extends AbstractFactory{//具体创建者1
public AbstractProduct1 createProduct1(){//通过继承基础创建者
return new creteProduct1();//创建产品1
}
public AbstractProduct2 createProduct2(){//创建产品2
return new CreteProduct2();
}
}
public class CreteFactory2 extends AbstractFactory{//具体创建者2
public AbstractProduct1 createProduct1(){
return new CreteProduct3();//创建产品3
}
public AbstractProduct3 createProduct2(){//创建产品4
return new CreteProduct4();
}
}
上一篇: ⼩程序中⽀持es7的async语法