设计模式2:抽象工厂模式

在上篇文章设计模式1:工厂模式中,已经描述了抽象工厂模式和简单工厂、工厂方法模式的区别。这篇继续针对抽象工厂模式刨根问底。

贴代码:
零部件产品类:

//发动机以及型号  
public interface Engine {
    
    }  
 
public class EngineA implements Engine{
    
      
    public EngineA(){
    
      
        System.out.println("制造-->EngineA");  
    }  
}  
public class EngineB implements Engine{
    
      
    public EngineB(){
    
      
        System.out.println("制造-->EngineB");  
    }  
}  
 
 
//空调以及型号  
public interface Aircondition {
    
    } 
 
public class AirconditionA implements Aircondition{
    
      
    public AirconditionA(){
    
      
        System.out.println("制造-->AirconditionA");  
    }  
}  
public class AirconditionB implements Aircondition{
    
      
    public AirconditionB(){
    
      
        System.out.println("制造-->AirconditionB");  
    }  
} 

工厂类:

//创建工厂的接口  
public interface AbstractFactory {
    
      
    //制造发动机
    public Engine createEngine();
    //制造空调 
    public Aircondition createAircondition(); 
}  
 
//为宝马320系列生产配件  
public class FactoryBMW320 implements AbstractFactory{
    
         
    @Override  
    public Engine createEngine() {
    
        
        return new EngineA();  
    }  
    @Override  
    public Aircondition createAircondition() {
    
      
        return new AirconditionA();  
    }  
}  
//宝马523系列
public class FactoryBMW523 implements AbstractFactory {
    
      
     @Override  
    public Engine createEngine() {
    
        
        return new EngineB();  
    }  
    @Override  
    public Aircondition createAircondition() {
    
      
        return new AirconditionB();  
    }  
} 
public class Customer {
    
      
    public static void main(String[] args){
    
      
        //生产宝马320系列配件
        FactoryBMW320 factoryBMW320 = new FactoryBMW320();  
        factoryBMW320.createEngine();
        factoryBMW320.createAircondition();
          
        //生产宝马523系列配件  
        FactoryBMW523 factoryBMW523 = new FactoryBMW523();  
        factoryBMW523.createEngine();
        factoryBMW523.createAircondition();
    }  
}

猜你喜欢

转载自blog.csdn.net/zhangjin1120/article/details/131293261