// 抽象工厂模式
// 有多个抽象子产品接口,每个抽象子产品接口都可以扩展多个具体子产品类的实现
// 一个抽象工厂接口,可以扩展多个具体工厂类的实现,且每个具体工厂类能够创建多个具体子产品类的实例
// 若一个产品由若干子产品组成,那一个具体工厂要形成可使用的具体产品,就必须通过生产多个具体子产品来实现
// 抽象子产品接口
public interface Engine {}
public interface Aircondition {}
// 具体子产品类
public class EngineA implements Engine {}
public class EngineB implements Engine {}
public class AirconditionA implements Aircondition {}
public class AirconditionB implements Aircondition {}
// 抽象工厂接口,面向抽象子产品接口编程
public interface Factory {
public Engine createEngine();
public Aircondition createAircondition();
}
// 具体工厂类,面向具体子产品编程
public class FactoryBMW320 implements Factory {
public Engine createEngine() {
return new EngineA();
}
public Aircondition createAircondition() {
return new AirconditionA();
}
}
public class FactoryBMW523 implements Factory {
public Engine createEngine() {
return new EngineB();
}
public Aircondition createAircondition() {
return new AirconditionB();
}
}
// 产品使用者类,面向抽象子产品接口和抽象工厂接口编程
public class User {
public void use(String str) {
Factory factory = getResource().getXML(XML路径).getBean(str);
Engine engine = factory.createEngine();
Aircondition aircondition = factory.createAircondition();
}
}
抽象工厂模式
最新推荐文章于 2023-04-30 17:47:26 发布