Java设计模式之抽象工厂(02)

对工厂方法进行抽象。当增加新的产品时,不用改动工厂类。而是集成已有的工厂接口或者抽象工厂,创建新的工厂。这就是对扩展开发,对修改封闭。

1 package Pak;
2 
3 public abstract class Automobile {
4     public abstract void Run();
5 }
package Pak;

public class Bus extends Automobile {

    @Override
    public void Run() {
        System.out.println("Bus Run");
    }
}
package Pak;

public class Jeep extends Automobile {

    @Override
    public void Run() {
        System.out.println("Jeep Run.");
    }
}

 

1 package Pak;
2 
3 public interface IProduce {
4     public Automobile Produce();
5 }
package Pak;

public class BusFactory implements IProduce {
    @Override
    public Automobile Produce() {
        // TODO Auto-generated method stub
        return new Bus();
    }
}
package Pak;

public class JeepFactory implements IProduce {
    @Override
    public Automobile Produce() {
        return new Jeep();
    }
}

 

 1 package Pak;
 2 
 3 public class Main {
 4 
 5     public static void main(String[] args) throws Exception {
 6         IProduce busFactory=new BusFactory();
 7         busFactory.Produce().Run();
 8         
 9         IProduce jeepFactory=new JeepFactory();
10         jeepFactory.Produce().Run();
11     }
12 }

 

Java设计模式之抽象工厂(02),布布扣,bubuko.com

Java设计模式之抽象工厂(02)

上一篇:C++ STL的sort 函数 以及自定义的比较函数


下一篇:关于java同步包中ConcurrentLinkedQueue类的深入分析与理解