掌握十四种关键的设计模式(实验内容+实验结果)

一、实验内容

1.简单工厂模式

​ 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,请实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

2.工厂方法模式

​ 海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition

) 。使用工厂方法模式描述该场景,绘制类图并编程实现。

3.抽象工厂模式

​ 电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。

4.原型模式

​ 设计一个客户类Customer,其中客户地址存储的地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。绘制类图并编程实现。

5、单例模式

​ 用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。

6、组合模式

​ 用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。

7、适配器模式

​ 现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和二分查找)。

8、装饰模式

​ 某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook() 。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统,绘制类图并编程实现。

9、外观模式

​ 在电脑主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check()),CPU的运行(run()),硬盘(HardDisk)的读取(read()),操作系统(OS)的载入(load())等,如果某一过程发生错误则电脑启动失败。使用外观模式模拟该过程,绘制类图并编程实现。

10、命令模式

​ 某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程实现。

11、代理模式

​ 应用软件所提供的桌面快捷方式时快速启动应用程序的代理,桌面快捷方式一般使用一张小图片来表示,通过调用快捷方式的run方法讲调用应用程序软件Application的run方法,使用代理模式模拟该过程,试绘制类图并编程实现。

12、迭代器模式

​ 某商品管理系统的商品名称存储在一个字符串数组中,现需要自定义一个双向迭代器(MyIterator)实现对该商品名称数组的双向(前向和后向)遍历。绘制类图并编程实现(设计方案必须符合DIP)。

13、观察者模式

​ 某在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。现使用观察者模式设计该系统,绘制类图并编程实现。

14、策略模式

​ 设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook) 每本都有2元的折扣,小说类图书(NovelBook)每100元有10元的折扣。现使用策略模式来设计该系统,绘制类图并编程实现。

二、实验结果

1、简单工厂模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

2、工厂方法模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

3、抽象工厂模式

1、类图
在这里插入图片描述
2、源码
在这里插入图片描述

4、原型模式

①类图
在这里插入图片描述
在这里插入图片描述
②源码
在这里插入图片描述

5、单例模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

6、组合模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

7、适配器模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

8、装饰模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

9、外观模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

10、命令模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

11、代理模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

12、迭代器模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

13、观察者模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

14、策略模式

①类图
在这里插入图片描述
②源码
在这里插入图片描述

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值