体系结构实验一.docx

上传人:b****7 文档编号:9647499 上传时间:2023-02-05 格式:DOCX 页数:3 大小:15.29KB
下载 相关 举报
体系结构实验一.docx_第1页
第1页 / 共3页
体系结构实验一.docx_第2页
第2页 / 共3页
体系结构实验一.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

体系结构实验一.docx

《体系结构实验一.docx》由会员分享,可在线阅读,更多相关《体系结构实验一.docx(3页珍藏版)》请在冰豆网上搜索。

体系结构实验一.docx

体系结构实验一

 

实验报告成绩:

指导教师审核(签名):

年月日

实验报告

一.实验设备型号

PC机一台

Window7系统

二.实验环境

starUML

MyEclipse

三.实验步骤、程序调试方法

实验步骤:

1.理解代理模式(Proxy)和迭代器模式(Iterator)的原理。

代理

模式是为其他对象提供一种代理以控制对这个对象的访问。

迭代器模式是提供一种方法顺序访问一个聚合对象中各元素,而不需要暴露该对象的内部表示。

2.用starUML画出这两种模式的类图。

3.在理解类图的基础上编写java代码。

3.1对于使用代理模式,需要编写的类(接口)包括Subject接口,里面有一个operation方法;类RealSubject和类Proxy需要实现Subject这个接口,在RealSubject类中的Operation方法中打印“thisisRealSubject”,在Proxy类中的Operation方法中打印“thisisProxy”;同时还要编写一个测试类Test。

3.2对于使用迭代器模式,根据类图编写的类(接口)有Aggregate接口,Iterator接口,ConceteAggregate类和ConcreteIterator类。

 

ConcreteAggregate和ConcreteIterator分别实现Aggregate和Iterator接口。

Aggregate接口中定义了两个方法:

add和iterator;Iterator接口中同样也定义了两个方法:

next()和hasNaxt();

程序调试方法:

1.对于代理模式,在测试类Test中先实例化RealSubject对象和Proxy对象,然后在调用proxy中的operation方法。

即:

Subjectsubject=newRealSubject();

Proxyproxy=newProxy(subject);

Subject.operation();

2.对于迭代器模式,在测试类Test中首先实例化ConcreteAggregate这个对象,向该对象中添加数据。

在调用iterator这个方法来实现遍历。

即:

Aggregateag=newConcreteAggregate();

ag.add(“张三”);

g.add(“李四”);

Iteratorit=ag.iterator();

四.实验数据处理及结果分析

1.对于代理模式的运行结果是:

thisisRealSubject

thisisProxy

产生这样的运行结果是因为在测试类中运行了proxy.operation()这句代码,而在Proxy类中的operation方法中是这样写的:

publicvoidoperation(){

subject.operation();

System.out.println(“thisisProxy”);

}

所以在执行时会先执行subject.operation(),所以会产生这样的结果。

2.对于迭代器模式的运行结果是:

张三

李四

产生这样的运行结果是因为在该模式中用的List来添加数据,List是有序可重复的,而且只添加了两条数据,所以用迭代器来遍历只会显示两条数据,而且是有序的。

五.实验中存在的问题

对于代理模式,实验中考虑的不全面,在测试类中就直接调Proxy

类,没有按照老师多讲的要在RealSubject类中判断一下,如果符合条件就使用代理模式,如果不符合条件就输出错误信息。

在做迭代器模式时,最开始没有真正的理解迭代器模式的含义,导致程序一直不正确,后来在同学的帮助下,完成了程序,而且也理解了迭代器的真正的含义。

六.体会及思考

通过这次实验,深刻理解了代理模式和迭代器模式,同时也学会了如何用面向对象语言来实现这两种模式,这次的实验为我以后的工作打下了坚定的基础。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1