博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对编程总结
阅读量:6453 次
发布时间:2019-06-23

本文共 1400 字,大约阅读时间需要 4 分钟。

同组者:贺翔。

合影

这次团队编程,我觉得效率还是很高的。虽然我们不是一开始就在一起,我们首先花了几天时间,先熟悉了下题目,在网上找有关的资料。之后有分析了下“BUS”算法的运行模式,算法的具体内容,之后一起构造我们自己的算法。

 

贺翔的优点在于有耐心,可以灵活运用找到的资源,学习能力强。但他的缺点在于编程能力较弱。我的优点在于做事积极,可以细心地完成任务,缺点在于比较随性,有时不会按照计划时间完成任务。

 

信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不 需要这些信息的其他模块来说,是不能访问的。在面向对象方法中,信息隐蔽是通过对象的封 装性来实现的。信息隐蔽的概念与模块的独立性直接相关。

信息隐藏,接口定义,松耦合,使程序具有良好的封装性,便于扩展功能而不影响原有的类

封装的一个主要的好处,就是增加软件代码的内聚性。通过增加内聚性,进而提高可复用性和可维护性。 信息隐藏的好处,正好和“封装”的好处相呼应。封装是为了提高内聚性;而信息隐藏是为了降低耦合性。通过降低耦合,一样可以达到提高可复用性、可维护性这2个目的。

具体来说在 电梯调度里的有电梯,乘客,搭乘请求的接口,并将接口封装到 commons.cs 文件中,在program,elevator,loaders,passenger上就可以方便的使用,而在我们工 作的重点电梯调度算法(scheduler)上,恰当使用这些接口,继承拓展原来简单的 scheduler,同时在拓展原scheduler类的同时,我们也充分利用以上方法,拓展员初始化类 和QueueReq类,并将各种判断条件从主题函数run()中分离出来,方便以后修改复用,例如 :IsAtTopFloor/IsAtBottomFloor 函数判断电梯调度边界条件,LastScheduler定义最近调 度方案,尽可能减少重复代码。

 

契约式设计优点

 

契约能使文档更出色;契约是类特性的公开视图中的固有成分;

有着更可靠的文档,运行时要检查断言,以便保证制定的契约与程序的实际运行情况一致;

 

契约式设计缺点

契约过于死板,不容易让创意得到实现,也不容易添加新的功能,因为函数功能已经约定好。

 

我们的方案为每个电梯设置了一个目的地的列表,每个电梯优先去往列表最上的一个目的地。而这个列表的建立,由程序判断。(1) 在电梯静止时,若有新的目的地请求时,分4种情况讨论:1电梯在提出请求的楼层上方,请求方向向下,则去提出该方向请求的楼层中最近的一层;2 电梯在提出请求的楼层上方,请求方向向上,则去提出该方向请求的楼层中最低的一层;3 电梯在提出请求的楼层下方,请求方向向上,则去提出该方向请求的楼层中最近的一层;4 电梯在提出请求的楼层下方,请求方向向下,则去提出该方向请求的楼层中最高的一层。当没有新的请求时,电梯请求列表清空,并开往最下一层停留。

(2)在电梯运行时,若是上行,若是中途经过的层中有请求,且方向一致(即上行),且仍有一人的余量,则该层的上行请求将被接受,电梯到达该层将会停留;同理,当下行时,若是中途经过的层中有请求,且方向一致,且仍有一人的余量,则该层的下行请求将被接受,电梯到达该层将会停留。

转载于:https://www.cnblogs.com/DOOM-px/archive/2012/10/22/2733807.html

你可能感兴趣的文章
How to set up PyQt4 for python 3.2 in Ubuntu11.10
查看>>
P1047 校门外的树
查看>>
poj1472[模拟题]
查看>>
c# 两个数组比较,将重复部分去掉,返回不重复部分
查看>>
支持IE6的树形节结构TreeTable实际应用案例
查看>>
DFA和NFA的区别
查看>>
并发检测主机ip存活脚本
查看>>
Leetcode 118 杨辉三角
查看>>
VBA中级班课时1小结
查看>>
PLS-00371: 'PAGEQUERY_PACK.CURSORTYPE' 最多允许有一个声明
查看>>
upc组队赛5 Ingenious Lottery Tickets【排序】
查看>>
HTML初级课程 (自学可懂)
查看>>
Error in deleting blocks.
查看>>
Linux 用户和用户组的命令
查看>>
操作系统 实验三、进程调度模拟程序
查看>>
NOIP2000提高组 单词接龙
查看>>
CSS常见的浏览器前缀
查看>>
【转】Eclipse中 代码提示时间修改和悬停(Hover)提示时间修改
查看>>
Tomcat log4j配置
查看>>
AngularJs的一个简单的表单验证
查看>>