设计模式之实验⼆:创建型设计模式实验
实验项⽬⼆:创建型设计模式实验
(1)实验⽬的与原理
①结合实例,熟练绘制创建型设计模式结构图。
②结合实例,熟练使⽤Java⾯向对象编程语⾔实现创建型设计模式。
③通过编程实践,理解每⼀种创建型设计模式的概念和内涵、结构、优缺点以及应⽤场景。
(2)实验内容与步骤
①使⽤简单⼯⼚模式设计⼀个可以创建不同⼏何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三⾓形( ( Triangle)等的绘图⼯具类,每个⼏何图形均具有绘制⽅法daw()和擦除⽅法 erase(),要求在绘制不⽀持的⼏何图形时,抛出⼀个 UnsupportedShapeException异常。绘制类图并编程模拟实现。
②在某⽹络管理软件中,需要为不同的⽹络协议提供不同的连接类,例如针对POP3协议的连接类POP3Connection、针对IMAP协议的连接类 IMAPConnection、针对HTTP协议的连接类 HTTPConnecti
on等。由于⽹络连接对象的创建过程较为复杂,需要将其创建过程封装到专门的类中,该软件还将⽀持更多类型的⽹络协议。现采⽤⼯⼚⽅法模式进⾏设计,绘制类图并编程模拟实现。
③某系统为了改进数据库操作的性能,⽤户可以⾃定义数据库连接对象 Connection和语句对象 Statement,针对不同类型的数据库提供不同的连接对象和语句对象,例如提供 Oracle或 MySQL专⽤连接类和语句类,⽽且⽤户可以通过配置⽂件等⽅式根据实际需要动态更换系统数据库。使⽤抽象⼯⼚模式设计该系统,绘制对应的类图并编程模拟实现。
④在某赛车游戏中,赛车包括⽅程式赛车、场地野赛车、运动汽车、卡车等类型,不同类型的赛车的车⾝、发动机、轮胎、变速箱等部件有所区别。玩家可以⾃⾏选择赛车类型,系统将根据玩家的选择创建出⼀辆完整的赛车。现采⽤建造者模式实现赛车的构建,绘制对应的类图并编程模拟实现
⑤某在线招聘⽹站中,⽤户可以创建⼀个简历模板。针对不同的⼯作岗位,可以复制该简历模板并进⾏适当修改后,⽣成⼀份新的简历。在复制简历时,⽤户可以选择是否复制简历中的照⽚:如果选择“是”,则照⽚将⼀同被复制,⽤户对新简历中的照⽚进⾏修改不会影响到简历模板中的照⽚,对模板进⾏修改也不会影响到新简历;如果选择“否”,则直接引⽤简历模板中的照⽚,修改简历模板中的照⽚将导致新简历中的照⽚⼀同修改,反之亦然。现采⽤原型模式设计该简历复制功能并提供浅克隆和深克隆两套实现⽅案,绘制对应的类图并编程模拟实现。
⑥某Web性能测试软件中包含⼀个虚拟⽤户⽣成器( Virtual User Generator)。为了避免⽣成的虚拟⽤户数量不⼀致,该测试软件在⼯作时只允许启动唯⼀⼀个虚拟⽤户⽣成器。采⽤单例模式设计该虚拟⽤户⽣成器,绘制类图并分别使⽤饿汉式单例、双重检测锁等⼆种⽅式编程模拟实现。
(3)实验过程
第⼀题:简单⼯⼚模式实现创建不同⼏何图形
结构类图
实现代码:
略
模拟测试截图
第⼆题:⼯⼚⽅法模式实现不同⽹络协议的连接结构类图
实现代码:
略
模拟测试截图
第三题:抽象⼯⼚模式实现数据库的连接结构类图
实现代码:
略
模拟测试截图
第四题:建造者模式实现赛车的构建
结构类图
单例模式的几种实现方式实现代码:
略
模拟测试截图
第五题:原型模式通过浅克隆和深克隆⽅法实现该简历复制功能结构类图
实现代码:
略
模拟测试截图
第六题:单例模式设计虚拟⽤户⽣成器,使⽤饿汉式和双重检测结构类图
实现代码:
略
模拟测试截图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论