Patrón de diseño 2: Patrón de fábrica abstracto

En el artículo anterior Patrón de diseño 1: Patrón de fábrica , se describió la diferencia entre el patrón de fábrica abstracto y el patrón de método de fábrica y fábrica simple. Este artículo continúa llegando al fondo del patrón de fábrica abstracto.

Pegar código:
Piezas Categoría de producto:

//发动机以及型号  
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");  
    }  
} 

Clase de fábrica:

//创建工厂的接口  
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();
    }  
}

Guess you like

Origin blog.csdn.net/zhangjin1120/article/details/131293261