1.UML类图及Java实现
案例:某基于C/S的即时聊天系统登录模块功能描述如下:用户通过登录界面(LoginForm)输入账 和密码,系统将输入的账 和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”。
根据以上描述绘制即时聊天系统登录模块的类图,并用Java编程实现(模拟实现即可)。
实现类图:
代码实现结构:
实现代码:
运行结果:
2.面向对象设计原则的应用
案例:在某绘图软件中提供了多种大小不同的画笔(Pen),并且可以给画笔指定不同颜色,某设计人员针对画笔的结构设计了如下类图:
通过仔细分析,设计人员发现该类图存在非常严重的问题,如果需要增加一种新的大小的笔或者增加一种新的颜色,都需要增加很多子类,如增加一种绿色,则对应每一种大小的笔都需要增加一支绿色笔,系统中类的个数急剧增加。
试根据依赖倒转原则和合成复用原则对该设计方案进行重构,使得增加新的大小的笔和增加新的颜色都较为方便。
实现类图:
代码实现结构:
实现代码:
实现效果:
3、简单工厂模式的应用
案例1:使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一 个Woman对象,用Java语言实现该场景。
扩展:现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。
案例2:使用简单工厂模式设计一个可以创建不同几何形状(如圆形、方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnSupportedException。
绘制类图并使用Java语言编程模拟实现。
案例1类图实现:
获取资源链接:https://download.csdn.net/download/qingxiao__123456789/12511351
4.工厂模式的应用
案例:现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式实现该程序的设计。
5.抽象工厂模式的应用
案例:计算机包含内存RAM、CPU等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。
分析:本例用抽象工厂模式来设计计算机的两个硬件,一个是Pc由PcCPU和PcRAM组成,一个是Mac由MacCPU和MacRAM组成,可以在以上两个农场中定义一个生产CPU的方法 newCPU() 和一个生产RAM的方法 newRAM()。
6.原型模式的应用
案例:设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。绘制类图并编程实现。
7.单例模式的应用
案例1:世界上只有一个月亮,月亮的直径是3476.28km,无论在中国还是在美国,我们所看到的都是同一个月亮。使用单例模式实现无论我们在哪所看到的月亮是同一个月亮(饿汉单例模式、懒汉单例模式),绘制类图并编程实现。
案例2:使用单例模式的思想模拟实现数据库连接池功能,确保系统中连接类的对象只能存在有限个,如两个或三个,设计并编写代码实现一个多例类。
8、组合模式的应用
案例:某教育机构组织结构如下图所示
在该教育机构的OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。
10、装饰器模式的应用
星巴兹(Starbuzz)是以扩张速度最快而闻名的咖啡连锁店,因为扩张速度实在太快了,他们准备更新订单系统,以合乎他们的饮料供应要求。
购买咖啡时(综合HouseBlend、深焙DarkRoast、浓缩Espresso、低咖啡因Decaf),也可以要求在其中加入各种调料,例如:蒸奶(Milk)、豆浆(Soy)、摩卡(Mocha,也就是巧克力风味)或奶泡(Whip)。星巴兹会根据所加入的调料收取不同的费用,所以订单系统必须考虑到这些调料部分。
请使用装饰器模式完成订单计费,绘制类图并编程实现。
11、迭代器模式的应用
某教务管理系统中一个班级(Class)包含多个学生(Student),使用Java内置迭代器实现对学生信息的遍历,要求按学生年龄由大到小的次序输出学生信息。绘制类图并编程实现。
12、观察者模式的应用
某在线游戏支持多人联机对战,每个玩家都可以加入某一战队组成联盟,当战队中某一成员受到敌人攻击时将给所有盟友发送通知,盟友收到通知后将作出响应。使用观察者模式设计并实现该过程。绘制类图并编程实现。
13、策略模式的应用
某系统需要对重要数据(如用户密码)进行加密,并提供了几种加密方案(如凯撒加密、DES加密等),对该加密模块进行设计,使得用户可以动态选择加密方式。要求绘制类图并编程模拟实现
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92167 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!