抽象工厂(Abstrasct Factory)

2018-07-26  本文已影响9人  森码
  1. 定义
    提供接口,创建一系列相关或独立的对象,而不指定这些对象的具体类。(可以理解为工厂模式的抽象)

  2. 类图


    Abstract Factory.png
  3. 例子

    //Button
    class Button {/* ...*/}
    class WinButton extends Button {/* ...*/}
    class MacButton extends Button{/* ...*/}

    //Icon
    class Icon {/* ...*/}
    class WinIcon extends Icon{/* ...*/}
    class MacIcon extends Icon{/* ...*/}


    //抽象工厂
    abstract class OSFactory{
        abstract Button createButton();
        abstract Icon createIcon();
    }

    //实现工厂Win
    class WinFactory extends OSFactory{

        @Override
        Button createButton() {
            return new WinButton();
        }

        @Override
        Icon createIcon() {
            return new WinIcon();
        }
    }

    //实现工厂Mac
    class MacFactory extends OSFactory{

        @Override
        Button createButton() {
            return new MacButton();
        }

        @Override
        Icon createIcon() {
            return new MacIcon();
        }
    }

补充

发现一个总结的更全的网站

上一篇 下一篇

猜你喜欢

热点阅读