java23种设计模式(二)抽象工厂模式

2019-10-25 06:45:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

java23种设计模式(二)抽象工厂模式

我们接着上一章的工厂方法模式继续学习一下抽象工厂模式。
抽象工厂模式:在工厂模式中,如果有多个产品,则就是抽象工厂模式。
例子:
有一个工厂开了两个子公司,专门用来生产电脑配件键盘和鼠标,一个是联想工厂则生产联想的产品,另一个是宏碁工厂则生产宏碁的产品。
代码如下:
1、工厂接口(可以生产鼠标和键盘)

public interface Factory {
     // 生产鼠标
    Mouse createMouse();

    // 生产键盘
    KeyBoard createKeyBoard();
}

2、联想工厂(生产联想鼠标和键盘)

public class LenovoFactory implements Factory {
    @Override
    public Mouse createMouse() {
        return new LenovoMouse();
    }

    @Override
    public KeyBoard createKeyBoard() {
        return new LenovoKeyBoard();
    }
}

3、宏碁工厂(生产宏碁鼠标和键盘)

public class AcerFactory implements Factory {
    @Override
    public Mouse createMouse() {
        return new AcerMouse();
    }

    @Override
    public KeyBoard createKeyBoard() {
        return new AcerKeyBoard();
    }
}

4、键盘接口

public interface KeyBoard {

    void getName();
}

5、联想键盘实现类

public class LenovoKeyBoard implements KeyBoard {
    @Override
    public void getName() {
        System.out.println("这个是联想键盘");
    }
}

6、宏碁键盘实现类

public class AcerKeyBoard implements KeyBoard {
    @Override
    public void getName() {
        System.out.println("这个是宏碁键盘");
    }
}

7、鼠标接口

public interface Mouse {

    void getName();
}

8、联想鼠标接口

public class LenovoMouse implements Mouse {
    @Override
    public void getName() {
        System.out.println("这个是联想鼠标");
    }
}

9、宏碁鼠标接口

public class AcerMouse implements Mouse {
    @Override
    public void getName() {
        System.out.println("这个是宏碁鼠标");
    }
}

10、客户端(可以在联想工厂买联想鼠标和键盘,也可以在宏碁工厂买宏碁生产的鼠标和键盘)

@SpringBootTest
class FactoryApplicationTests {
    @Test
    void abstractF(){

        LenovoFactory lenovoFactory = new LenovoFactory();
        lenovoFactory.createKeyBoard().getName();
        lenovoFactory.createMouse().getName();

        AcerFactory acerFactory = new AcerFactory();
        acerFactory.createKeyBoard().getName();
        acerFactory.createMouse().getName();
    }
}

总结:
(1)增加xx工厂:创建xx工厂,继承工厂接口,然后创建xx鼠标继承鼠标接口,创建xx键盘继承键盘接口即可。
(2)增加音响产品:首先创建音响接口,然后分别创建联想音响和宏碁音响实现类实现音响接口。然后再工厂接口中增加创建音响的方法,在联想工厂和宏碁工厂分别实现自家音响的创建。

如果文章对您有帮助,请记得点赞关注哟~
欢迎大家关注我的公众号<情系IT>,每日技术推送文章供大家学习参考。


原文链接:https://www.cnblogs.com/zhixie/p/11711441.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)

下一篇:Java应用在docker环境配置容器健康检查