设计模式(三)——抽象工厂模式

2018-08-16  本文已影响5人  沧海一粟谦

抽象工厂模式

抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。在抽象工厂中,接口是负责创建相关对象的工厂,不需要显示指定他们的类。提供了一种创建对象的最佳方式。

角色

抽象产品类

public interface IApple {

    void get();
}

public interface IOrange {

    void get();
}

具体产品类

public class CNApple implements IApple {

    public void get() {
        System.out.println("我是中国苹果。");
    }
}

public class CNOrange implements IOrange {

    public void get() {
        System.out.println("我是中国橙子。");
    }
}

public class USApple implements IApple {

    public void get() {
        System.out.println("我是美国苹果。");
    }
}

public class USOrange implements IOrange {

    public void get() {
        System.out.println("我是美国橙子。");
    }
}

定义了4个具体对象实例类。

抽象工厂类

public interface AbstractFactory {

    IApple getApple();

    IOrange getOrange();
}

具体工厂类

public class USFactory implements AbstractFactory {

    public IApple getApple() {
        return new USApple();
    }

    public IOrange getOrange() {
        return new USOrange();
    }

}

public class CNFactory implements AbstractFactory {
    public IApple getApple() {
        return new CNApple();
    }

    public IOrange getOrange() {
        return new CNOrange();
    }
}

测试

    public static void main(String[] args) {
            AbstractFactory usFactory = new USFactory();

            AbstractFactory cnFactory = new CNFactory();

            usFactory.getApple().get();
            usFactory.getOrange().get();

            cnFactory.getApple().get();
            cnFactory.getOrange().get();

    }

运行结果:

我是美国苹果。
我是美国橙子。
我是中国苹果。
我是中国橙子。

总结

上一篇下一篇

猜你喜欢

热点阅读