Patrón de diseño de desarrollo de Android (tres, Abstract Factory (modelo abstracto de fábrica))

Tres, fábrica abstracta (modo de fábrica abstracta)

Patrón de fábrica abstracto: proporciona una interfaz para crear una serie de objetos relacionados o interdependientes sin especificar sus clases específicas.

Ahora continuamos fabricando automóviles BMW. Con las crecientes necesidades de los clientes, los automóviles BMW necesitan diferentes configuraciones de acondicionadores de aire y motores y otros accesorios. Entonces esta fábrica comenzó a producir aires acondicionados y motores para ensamblar autos. La fábrica tiene dos series de productos: aires acondicionados y motores. La serie BMW X5 está equipada con acondicionadores de aire tipo A y motores tipo A, y la serie BMW X6 está equipada con acondicionadores de aire tipo B y motores tipo B.

Categoria de producto:

// BMW.java

BMW clase pública abstracta {

      publicBMW () {

      }

}

// BMWX5.java

BMWX5 de clase pública amplía BMW {

      publicBMWX5 () {

             System.out.println ("Hacer un BMW X5");

      }

}

// BMWX6.java

BMWX6 de clase pública amplía BMW {

      publicBMWX6 () {

             System.out.println ("Hacer un BMW X6");

      }

}

// Engine.java

Motor de clase abstracta pública {}

// EngineA.java

EngineA de clase pública extiendeEngine { 

    Public EngineA () { 

        System.out.println ("Fabricar un motor A"); 

    } 

}

// EngineB.java

EngineB de clase pública extiendeEngine { 

    EngineB público () { 

        System.out.println ("Fabricar un motor B"); 

    } 

}

// Aircondition.java

classAircondition abstracta pública {}

// Aire acondicionadoA.java

clase pública AirconditionAextends Aircondition { 

    public AirconditionA () { 

        System.out.println ("Fabricar un acondicionador de aire A"); 

    } 

}

// Aire acondicionadoB.java

clase pública AirconditionBextends Aircondition { 

    public AirconditionB () { 

        System.out.println ("Fabricar un acondicionador de aire B"); 

    } 

}

Clase de fábrica:

// FactoryBMW.java

interfaz pública FactoryBMW {

      BMWcreateBMW_A ();

      BMWcreateBMW_B ();

      AirconditioncreateaAirconditionA ();

      AirconditioncreateaAirconditionB ();

}

// FactoryBWMX5.java

// Serie BMW X5: producción de automóviles X5 con dos modelos de aire acondicionado A y B

clase pública FactoryBWMX5implements FactoryBMW {

      publicBMWX5 createBMW_A () {

             createaAirconditionA ();

             volver nuevo BMWX5 ();

      }

      publicBMWX5 createBMW_B () {

             createaAirconditionB();

             returnnew BMWX5();

      }

      publicAircondition createaAirconditionA() {

             returnnew AirconditionA();

      }

      publicAircondition createaAirconditionB() {

             returnnew AirconditionB();

      }

}

// FactoryBWMX6.java

//宝马X6系列,生产配置A,B两种空调型号的X6汽车

public class FactoryBWMX6implements FactoryBMW {

      publicBMWX6 createBMW_A() {

             createaAirconditionA();

             returnnew BMWX6();

      }

      publicBMWX6 createBMW_B() {

             createaAirconditionB();

             returnnew BMWX6();

      }

      publicAircondition createaAirconditionA() {

             returnnew AirconditionA();

      }

      publicAircondition createaAirconditionB() {

             returnnew AirconditionB();

      }

}

客户类:

 // Customer.java

public class Customer {

      publicstatic void main(String[] args){

             //想要A型空调宝马X5

             FactoryBWMX5factoryBWMX5_A = new FactoryBWMX5();

             BMWX5x5_A = factoryBWMX5_A.createBMW_A();

             //想要B型空调宝马X5

             FactoryBWMX5factoryBWMX5_B = new FactoryBWMX5();

             BMWX5x5_B = factoryBWMX5_B.createBMW_B();

             //想要A型空调宝马X6

             FactoryBWMX6factoryBWMX6_A = new FactoryBWMX6();

             BMWX6x6_A = factoryBWMX6_A.createBMW_A();

             //想要B型空调宝马X6

             FactoryBWMX6factoryBWMX6_B = new FactoryBWMX6();

             BMWX6x6_B = factoryBWMX6_B.createBMW_B();

      }

}


Supongo que te gusta

Origin blog.csdn.net/xhf_123/article/details/49849911
Recomendado
Clasificación