设计模式-抽象工厂模式的应用
发布日期:2021-06-30 17:44:38
浏览次数:2
分类:技术文章
本文共 2338 字,大约阅读时间需要 7 分钟。
抽象工厂模式的应用
麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cole),用JAVA语言实现这两个快餐店经营产品的抽象工厂模式。绘制该模式的UML图。
【模式UML图】
【模式代码】 :package sy_2.abstractFactory;//抽象工厂角色public interface Creator { public Hamburg createHamburg(); public Cole createCole();}
// KFCCreator.java:
package sy_2.abstractFactory;public class KFCCreator implements Creator { @Override public Hamburg createHamburg() { return new KFCHamburg(); } @Override public Cole createCole() { return new KFCCole(); }}
// McDonaldsCreator.java:
package sy_2.abstractFactory;public class McDonaldsCreator implements Creator { @Override public Hamburg createHamburg() { return new McDonaldsHamburg(); } @Override public Cole createCole() { return new McDonaldsCole(); }}
// Hamburg.java:
package sy_2.abstractFactory;public interface Hamburg { public void getHamburg();}
// Cole.java:
package sy_2.abstractFactory;public interface Cole { public void getCole();}
// McDonaldsHamburg.java:
package sy_2.abstractFactory;public class McDonaldsHamburg implements Hamburg { @Override public void getHamburg() { System.out.println("McDonalds的Hamburg"); }}
// KFCHamburg.java:
package sy_2.abstractFactory;public class KFCHamburg implements Hamburg { @Override public void getHamburg() { System.out.println("KFC的Hamburg"); }}
// McDonaldsCole.java:
package sy_2.abstractFactory;public class McDonaldsCole implements Cole { @Override public void getCole() { System.out.println("McDonalds的Cole"); }}
// KFCCole.java:
package sy_2.abstractFactory;public class KFCCole implements Cole { @Override public void getCole() { System.out.println("KFC的Cole"); }}
// AbstractFactoryMain.java:
package sy_2.abstractFactory;public class AbstractFactoryMain { public static void main(String[] args) { System.out.println("想要McDonalds的Hamburg和Cole"); McDonaldsCreator mcDonalds = new McDonaldsCreator(); mcDonalds.createHamburg().getHamburg(); mcDonalds.createCole().getCole(); System.out.println("-------------------------------"); System.out.println("想要KFC的Hamburg和Cole"); KFCCreator kfcCreator = new KFCCreator(); kfcCreator.createHamburg().getHamburg(); kfcCreator.createCole().getCole(); }}
【运行截图】
抽象工厂模式主要适用于以下情况:
- 一系列要独立于它的产品的创建、组合和表示时。
- 一个系统要由多个产品系列中的一个来配置时。
- 当要强调一系列相关的产品对象的设计以便进行联合使用时。
- 当要提供一个产品类库,而只要显示它们的接口而不是实现时。
转载地址:https://lexiaoyuan.blog.csdn.net/article/details/89073909 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月24日 02时10分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode46 全排列
2019-04-30
leetcode121 买卖股票的最佳时机
2019-04-30
leetcode 122 买卖股票的最佳时机II
2019-04-30
leetcode 309 最佳买卖股票含冷冻期
2019-04-30
leetcode 714 买卖股票的最佳时机含手续费
2019-04-30
leetcode3 无重复字符的最长子串
2019-04-30
leetcode 76 最小覆盖子串
2019-04-30
leetcode 1143. 最长公共子序列
2019-04-30
leetcode 83. 删除排序链表中的重复元素
2019-04-30
智能体 Intelligent Agent
2019-04-30
Network Compression网络压缩(一)
2019-04-30
GAN系列(零)—— GAN的发展(两条路线)
2019-04-30
Conditional GAN (CGAN) 条件生成网络
2019-04-30
强化学习(三) —— Policy Gradient 策略梯度
2019-04-30
docker安装oracle(win10)
2019-04-30
Cloudera Quickstart & HUE
2019-04-30
HUE
2019-04-30
CDH
2019-04-30
行为树 BT
2019-04-30
Cassandra & CQL
2019-04-30