java实验策略模式观察者模式和组合模式_第1页
java实验策略模式观察者模式和组合模式_第2页
java实验策略模式观察者模式和组合模式_第3页
java实验策略模式观察者模式和组合模式_第4页
java实验策略模式观察者模式和组合模式_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二 策略模式、观察者模式和组合模式一、实验目的:(1)学习和掌握策略模式;(2)学习和掌握观察者模式;(3)学习和掌握组合模式;(4)学习和掌握使用这些模式解决实际问题;二、实验内容1. 请使用策略模式实现下列编程要求:已知几何形状家族有圆形、矩形、椭圆 形、三角形等形状。请用Java语言定义一个抽象类MyShape表示形状这样概念, MyShapett象类中提供了计算面积、周长、显示形状信息的抽象方法,然后分别 定义它的子类 MyCircle (圆形)、MyRectangle (矩形)、MyEllipse (椭圆形)、 MyTriangle (三角形)等特定几何形状。并绘制这些定义的几何

2、家族的所有形状。2请用观察者模式实现功能:学校发布信息,学生可以订阅,老师可以订阅, 行政人员也可以订阅。提示:定义主题接口,观察者接口,定义 Notice 、学生、 老师和行政人员类,定义测试类。其中 Notice 类实现主题接口,老师、学生和 行政人员实现观察者接口。 思考,如果要求实现学生和老师均可以订阅多个信息, 即除了订阅学校发布信息,也可以订阅所属系发送的信息,请编程实现。3定义一个游戏地图。地图是由每个方块拼合起来。地图上有墙等障碍物,也 有可以通行的基本图元构成。 请使用组合模式, 绘制一个游戏地图, 地图的内容 自行定义,也可以类似图 3 形式:图3游戏地图4已知有一个二维数

3、组数据如图1所示,请结合策略模式、观察者模式和组合 模式实现一个MVC结构的应用程序。要求:如果用户移动滑块,可以修改二维数 组的值,并在运行的用户界面中显示出来。 其中,饼状图和柱状图中的区域分布 为二位数组每一维的总和。运行结果如图 4和图5所示。605090904030102070图4数据模型图5运行结果三、实验环境1、PC微机;2、DO操作系统或Windows操作系统;3、jdk程序集成环境Eclipse四、源代码、测试结果及 UML图一:图DrawShape-shapesList+DrawShape() +addShape(shape:MyShap e):void+paintComp

4、onent(g:Gr aphics):voidMyShape+area():float +perimeter():float +draw(g:Graphics): voidMyCircle-PI:float=3.14f -radius:i nt-x:i nt-y:i nt +MyCircle(x:i nt,y: in t,radius:i nt) +area():float +perimeter():float +draw(g:Graphics) :void+toStri ng():Stri ngMyRecta ngleMyEllipse-width:i nt-PI:float=3.14f-h

5、eight:i nt-aL on g:i nt-x:i nt-bShort:i nt-y:i nt-x:i nt-y:i nt+MyRecta ngle(widt+MyEllipse(aL on g:i nh:i nt,height:i nt,x:i nt,t,bShort:i nt,x:i nt,y:i nty:i nt)+area():float+area():float+perimeter():float+perimeter():float+draw(g:Graphics):+draw(g:Graphics):vvoidoid+toStri ng():Stri ng+toStri ng(

6、):Stri ngMyTria ngle-xPoi nts:i nt -yPoi nts:i nt -a:i nt -b:i nt -c:i nt -n:i nt +MyTria ngle(xPoin ts:i nt,yPoi nts:i nt, a:i nt,b:i nt,c:i nt, n:i nt )+area():float +perimeter():float +draw(g:Graphics): void+toStri ng():Stri ng2. 源程序代码:package绘制所有图形SuppressWar nin gs(serial) public class DrawShap

7、e exte nds JPa nel private List shapes;public DrawShape() shapes=new ArrayList();public void addShape(MyShape shape) dd(ds);(绘制图形演示);(500,400);(true );3. 测试结果图:I皂I血4詔兀 曲tJ鈕I倍ES Test 2 )棺庖隹稣| CV*KJflrn Filei (血和抄叭reTibnl加如已& : 231-13 下牛7:19:4$ )Myfirclp rsdiusOj x坐标刀叭 y=?0|面积勻1站船伽1周怅汩用00”MyRectangle

8、輕标总妙 y坐标二迢 坯邮宜“砂 矩懈高=160 面151=12600.01(-446.0 MyEUipse x坐杯-40y斬-20叭 谊號-1 処 feFt-100面 1H-11775.001 jJ5JK-414.t)Mylriarigle n二巧 b=12 c=lS 囱帆二S4.0周氏=3S0:图:2.源代码:package 主题publicin terfaceSubject public void registerObserver(Observer observer);public void removeObserver(Observer observer);public void no

9、tifyAllObservers();、package学校通知public class Notice impleme nts Subject private List observers;private String message;public Notice()observers=new ArrayList();Overridepublic void registerObserver(Observer observer) 已蜂Test ( 3 J自如 应屈程痔匚Aprograrn Files (x86)JavajreAbinjavawexe ( 2013-5-1: 教师厉到通知:药通莎 五一

10、全体放很七耳;学生收到通扣:学梭通炖:五一全体放假七天。行政人员收到通知:学檢通知;五一全体放假七天。教师收到通知:学院通知:这个礼拜周末补课J睛各位做好心里准备学生收到通知:学院通知:这个礼拜周末补课请各位俶好心里淮爸 学生收到通知;学校通村:五一全休放假七天 行政人员收到通知匕学校通知:五一全体敖儼七天二 YI16烬爾为螫3II 厂代码package ;public in terface Model publicvoidsetData( int index,int value);publicint getData();publicvoidaddObserver(View o);publicvoidremoveObserver(Viewo);publicvoidnotifyObservers(); package ;import数据模型public class DataModel impleme nts Model private in t data; etMajorTickSpaci ng(20); slidersi.setM ino rTickSpaci ng(4); slidersi.setPa in tTicks(true); slidersi.setPa in tLab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论