阿八博客
  • 100000+

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

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

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/1021/121038.html 我们接着上一章的工厂方法模式继续学习一下抽象工厂模式 抽象工厂模式:在工厂模式中,如果有多个产品,则就是抽象工厂模式 例子:有一个工厂开了两个子公司,专门用来生产电脑配件键盘和鼠标,一个是联想工厂则生产联想的产品,另一个是宏碁工厂则生产宏碁的产品 代码如下: 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、客户端(可以在联想工厂买联想鼠标和键盘,也可以在宏碁工厂买宏碁生产的鼠标和键盘)@SpringBootTestclass 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>,每日推送技术文章供大家学习参考

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!