Trick and Magic(OO博客第二弹)】的更多相关文章

代码是设计,不是简单的陈述.而设计不仅要求功能的正确性,更注重设计风格和模式. 真正可以投入应用的程序设计,不是那种无脑的“黑箱”,超巨大的数组,多重循环暴力搜索,成吨全局变量……事实上,在实际应用中更重要的是权衡兼顾功能,性能,可读性,鲁棒性等等方面,而最终完成一个综合的工程.我们真正做的事是程序设计,而不是无脑地写代码. 在本次OO三次作业的周期里,我逐渐开始接触了多线程并发程序和真正工程化的模板设计,历经疯狂Google--爆肝写码--艰难读码的过程后,我从中发现了许多许多非常tricky…
OO博客总结--OO落下帷幕 凡此过往,皆为序章. 不知不觉OO课程即将落下帷幕,一路坎坎坷坷磕磕绊绊,可算是要结束了,心里终于松了一口气,也有小小的不甘和遗憾.凡此过往,皆为序章.特殊的线上OO课程结束了,但面向对象的旅程才刚刚开始! 一.第四单元架构设计 第一次作业 本次作业是完成类图的解析器,对类图进行一些基本的分析,如对类图中类\操作\属性\关联\实现\继承等查询. 我认为第四单元作业第一步要解决的是对UML的几种主要视图,特别是类图,状态图,顺序图的结构和mdj文件结构的分析.如果将U…
OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程领域如航空航天领域有广泛应用. 1.1 JML语言理论基础 本单元我们学习了一些语言理论基础,梳理如下: 1.requires 该子句定义了方法的前置条件 2.assignable子句,列出方法修改的类成员属性.\nothing则表示方法不改变任何成员属性,是一个pure的方法 3.ensure子句…
1.循环正常结束是指没有中间截断,即没有执行break; for i in range(10) print(i) else: print("循环正常结束") 2.嵌套循环 for i in range(10) for j in range(10) print(i,j) 3.break 只会跳出当前循环 for i in range(10) for j in range(10) print(i,j) if j >5: break 4.for 循环,小循环不走 for i in ra…
(1)基于度量来分析自己的程序结构 注:UML图中每个划分了的圆角矩形代表一个类或接口,箭头可代表创建.访问数据等行为.类的图形内部分为3个部分,从上到下依次是类的名称.类包含的实例变量(属性).类实现的方法.接口图形内部只分2个部分,上方为接口名,下方为接口定义的抽象方法.箭头上的注释进一步解释了类之间的关系. 作业1:多项式运算 两处红色的问题都出自checkformat方法.该方法圈复杂度高,块嵌套深度高.原因在于自己的格式检查没有使用推荐的正则表达式,依然使用了传统的有限状态机.这就容易…
这次的系列作业是写一个电梯调度,主要目的是让我们熟悉多线程. 第一次作业是一个傻瓜电梯的调度问题,要求也很简单,即每次接一个人就行了.我只用了两个线程,一个是输入线程,一个是电梯线程,输入线程负责从标准输入中读入请求并加入到请求队列中,电梯线程负责从请求队列中取出请求并执行,思路非常简单,每次取一个请求,把人送到后,再取下一个,直到取完并且输入停止. 第二次作业没有什么本质区别,只不过修改了调度算法,在电梯运行时进行捎带,我这里的思路是,先找到一个主请求,然后在去接主请求和送主请求去目的地的路上…
.测试与JSF正确性论证 测试和JSF正确性论证是对一个程序进行检验的两种方式.测试是来的最直接的,输入合法的输入给出正确的提示,输入非法的输入给出错误信息反馈,直接就能很容易的了解程序的运行情况.但是,每次测试只是在程序涉及的整个问题空间取一个元素进行测试,一次测试只能确保程序对于测试中的样例和同类样例是正确的,并不能确保全局正确性.而为了追求全局覆盖性,就需要大规模的测试样例轰炸了,但是这时测试的最致命缺陷就出现了,一是如何构造如此大量且属于不同类别的测试样例,二是如何确保构造的测试样例能够…
如果说继承是面向对象程序设计中承前启后的特质,那么接口就是海纳百川的体现了.它们都是对数据和行为的抽象,都是对性质和关系的概括.只不过前者是纵向角度,而后者是横向角度罢了.今天呢,我想从设计+语法角度说一说我感受到的面向接口编程,从而初探设计与实现分离的模式. (本文所使用的面向对象语言为java,相关代码都是java代码) 设计——接口抽象设计 继承的思想很容易理解,提取几类相近数据中的公共部分为基类,各个独立部分在基类的基础上做自己专属的延伸.接口是抽象概括输入和输出,而具体的实现交由具体实…
规格化设计历史 规格化设计的历史目前网上的资料并不多,百度谷歌必应也表示无能为力...... 在这里结合现实情况讲一讲自己对程序规格化的理解,首先代码规格化对代码的影响是间接的,或许它不能让你代码里面的bug直接消失,或许它也不能让电梯之间不相互阻塞,但是它能让OO实验拿到更多分啊//笑.玩笑归玩笑,下面具体分析一下规格化设计(JSF为例)的作用: 在代码实现过程中,人们往往不能从一开始对整个项目的每个细节都面面俱到地思考一遍,规格化设计在开发初期可以将项目中的细节隐去,工程师只需要考虑类or包…
一.总结介绍规格化设计的大致发展历史和为什么得到了人们的重视 1.规格化设计的大致发展历史 规格化设计,又称契约式设计,最早由Bertrand Meyer于1986年提出,出自于<面向对象软件构造>.其基础是形式验证.形式规格和Hoare logic. 2.规格化设计得到重视的原因 在大型软件工程开发中,协同工作能力的重要性日益凸显.“对于一个大型系统来说,光保证它的各组成成分的质量是不够的.而最有价值的是确保在任何两个组成部分的交接处设计明晰的彼此义务和权利规范,即所谓契约.”(<面向…