background image

帝类 。正如上面所说,这样便分担了对象承受的压力;

 

而且这样使得结构变得灵活 起来

—当有新的产品(即暴发户的汽车)产生时,只要按照抽象产品角色、抽象工厂角色提供的

 

合同来生成,那么就可以被客户使用,而不必去修改任何已有的代 码。可以看出工厂角
色的结构也是符合开闭原则的!

  代码:
//抽象产品角色
public interface Moveable {
    void run();
}
//具体产品角色
public class Plane implements Moveable {
    @Override
    public void run() {
        System.out.println("plane....");
    }
}
public class Broom implements Moveable {
    @Override
    public void run() {
        System.out.println("broom.....");
    }
}
//抽象工厂
public abstract class VehicleFactory {
    abstract Moveable create();
}
//具体工厂
public class PlaneFactory extends VehicleFactory{
    public Moveable create() {
        return new Plane();
    }
}

public class BroomFactory extends VehicleFactory{
    public Moveable create() {
        return new Broom();
    }
}
//测试类
public class Test {
    public static void main(String[] args) {
        VehicleFactory factory = new BroomFactory();