当前位置: 首页 > news >正文

【软件架构】软件体系结构风格实现

要求:

       麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用面向对象思想实现这两个快餐店经营产品的抽象工厂模式。绘制该模式的UML类图。

代码实现:

//AbstractFactory.java

interface AbstractFactory{Hamburg createHamburg();Cola createCola();
}

//Cola.java

public interface Cola{void getCola();
}

//Hamburg.java

public interface Hamburg {void getHumburg();
}

//KFCCola.java

public class KFCCola  implements Cola{public void getCola() {System.out.println("KFCCola");}
}

//KFCFactory.java

public class KFCFactory implements AbstractFactory{public Hamburg createHamburg() {return new KFCHamburg();}public Cola createCola() {return new KFCCola();}}

//KFCHamburg.java

public class KFCHamburg implements Hamburg{public void getHumburg() {System.out.println("KFCHamburg");}}

//Main.java

public class Main {public static void main(String[] args) {Hamburg h = null;Cola c = null;AbstractFactory af = null;af = new McDonaldsFactory();h = af.createHamburg();c = af.createCola();h.getHumburg();c.getCola();af = new KFCFactory();h = af.createHamburg();c = af.createCola();h.getHumburg();c.getCola();}
}

//McDonaldsCola.java

public class McDonaldsCola implements Cola{public void getCola() {System.out.println("McDonaldsCola");}	
}

//McDonaldsFactory.java

class McDonaldsFactory implements AbstractFactory{public Hamburg createHamburg() {return new McDonaldsHamburg();}public Cola createCola() {return new McDonaldsCola();}
}

//McDonaldsHamburg.java

class McDonaldsHamburg implements Hamburg{public void getHumburg() {System.out.println("McDonaldsHamburg");}
}

类图:

运行结果:

http://www.lryc.cn/news/587598.html

相关文章:

  • I2C设备寄存器读取调试方法
  • 卷绕/叠片工艺
  • React源码3:update、fiber.updateQueue对象数据结构和updateContainer()中enqueueUpdate()阶段
  • 新手向:Python自动化办公批量重命名与整理文件系统
  • 理解:进程、线程、协程
  • LLM表征工程还有哪些值得做的地方
  • python的小学课外综合管理系统
  • 我对muduo的梳理以及AI的更改
  • MFC UI表格制作从专家到入门
  • LeetCode经典题解:206、两数之和(Two Sum)
  • 018 进程控制 —— 进程等待
  • 算法训练营day18 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
  • B站自动回复工具(破解)
  • 项目一第一天
  • 苍穹外卖学习指南(java的一个项目)(老师能运行,但你不行,看这里!!)
  • priority_queue的使用和模拟实现以及仿函数
  • 《C++内存泄漏8大战场:Qt/MFC实战详解 + 面试高频陷阱破解》
  • MFC/C++语言怎么比较CString类型最后一个字符
  • 【Linux】Ubuntu22.04安装zabbix
  • HTTP 四种常见方法
  • 【论文阅读】Thinkless: LLM Learns When to Think
  • ubuntu(22.04)系统上安装 MuJoCo
  • MFC UI控件CheckBox从专家到小白
  • 桶排序算法深度剖析
  • FastAPI + gRPC 全栈实践:Windows 开发到 Ubuntu 部署全指南
  • flink 和 spark 架构的对比
  • idea删除的文件怎么找回
  • IDEA中使用Servlet,tomcat输出中文乱码
  • JMeter 连接与配置 ClickHouse 数据库
  • 递推预处理floor(log_2{n})