Abstract Factory(抽象工厂模式)

来源:互联网 发布:网络使人更疏远的提问 编辑:程序博客网 时间:2024/06/10 05:34

抽象工程模式:

    

应用场景:对象稳定,应对对象多系列的变化。

解释,对象稳定:对象的抽象类型不经常更新,不会出现

           对象系列的变化:对象抽象类型不经常变,而抽象对象类项下对象的系列,不断的变化

缺点:难以应对新对对象类型的变化

 

英文:Abstract Factory(创建型模式)

Public createFactory{

         Public static  Road CreadteRoad(){

                   Return new Road();

}

Public static Water createWater(){

         Return new Water();

}

Public satic hill createHill(){

         Return new Hill();

}

}

问题:变化点移到createFactory

解决方案:提供一种封装机制,封装变化点

 

提供几个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定他们具体的类。--《设计模式》GOF

Public abstract class road{

}

Public abstract class Building{
}

Public abstract class tunnel{

}

Public abstract class jungle{

}

Public abstract factory{

         Public abstract road createroad();

         Public abstract tunnel createtunnel();

         Public abstrace jungle createjungle();

}

Public class Road1 :road{

 

}

Public class Road2 :road{

 

}

Public class Building1:Building{

}

Public class Building2:Building{

}

 

Public class Jungle1:Jungle{

}

Public class tunnel1:Tunnel{

        

}

Public class tunnel2:Tunnel{

        

}

 

Class Master{

Factory factory;

Public Master(factory){

     This.factory=factory;

}

Public void BuildFactory(){

     Build road=factory.createBuild();

     Tunnel tunnel=factory.createTunnel();

     Jungle jungle=factory.createJungle();

}

Public void run(){
}

Public void Main(String []arg){

     Factory factory=new Factory1();

     Master master=new Master(factory);

  Master.run();

}

}

Public class Facatory1 extends factory{

         Public overrid Buiding createbuilding(){

         Return New Building1();

}

Public overrid Jungle createJungle(){
                   return new Jungle1();

}

Public overrid Tunnel createTunnel(){

         Return new Tunnel1()

}

Public overrid Road createRoad(){

         Return new Road1();

}

}

 

 

原创粉丝点击