设计模式-抽象工厂模式的应用
发布日期: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秒