咱的OO结束辣! Part1: Unit4 Summary 本单元作业,我主要使用了适配器模式和访问者模式.总体上看,代码量和文件数量有所上升,但配合分包等措施后,文件结构清晰,各部分耦合度均较低.缺点就是一个简单操作要脱好几层套,显得有些臃肿. 由于三次作业基本上只有增加对新功能的支持,因此只分析第三次作业. Section1: 整体处理以及错误检测 总的来说,我将所有UML元素的类用MyUmlElement包裹,并添加属于自己的属性方便自己扩展.子类继承MyUmlElement并存入有关元素…
「BUAA OO Unit 4 HW16」第四单元总结与课程回顾 目录 「BUAA OO Unit 4 HW16」第四单元总结与课程回顾 Part 0 第四单元作业架构设计 架构设计概要 AppRunner官方包代码简析与架构设计初步 一.AppRunner工作逻辑和流程 1. 属性 1.1 interaction 1.2 status 2. 行为 2.1 run Step 1 输入与解析模型 Step 2 输入与指令获取 Step 3 输出 二.我们的工作 1. 解析和存储元素 1.1 输入顺…
不知不觉中,我已经接触OO五周了,顺利地完成了第一章节的学习,回顾三次编程作业,惊喜于自身在设计思路和编程习惯已有了一定的改变,下面我将从度量分析.自身Bug.互测和设计模式四个方向对自己第一章的学习做一个总结.本人OO萌新,且这篇文章更多面向我自己,无法面面俱到,因此若对文章内容有疑惑和建议,欢迎各位大佬在评论区批评指正~ 程序度量分析 本章求导作业共有三次,通过从不同度量指标纵向对比三次作业,我发现自己的代码结构已经逐渐有了变化,下面我将从类结构图.代码复杂度和类依赖三个指标对三次作业进行分…
BUAA面向对象设计与构造——第二单元总结 第一阶段:单部傻瓜电梯的调度 第二阶段:单部可捎带电梯的调度 (由于我第一次写的作业就是可捎带模式,第二次只是增加了负数楼层,修改了一部分参数,因此一起总结.) 1.设计策略 这次作业我设计了两个线程:Elevator和DealWithInput,前者模拟电梯,而后者用来处理输入.队列PersonQueue作为一个单例模式下的对象,被两个线程所共有,充当调度器的角色. DealWithInput基本套用下发的模板,只是增加了每次读到新请求就通知调度器p…
BUAA面向对象设计与构造——第一单元总结 第一阶段:只支持一元多项式的表达式求导 1. 程序结构 由于是第一次接触面向对象的编程,加之题目要求不算复杂,我在第一次作业中并没有很好利用面向对象的特点,只建了两个类. 第一个DerivativeFunc类只包含main函数,而剩余所有功能包括正确性检查.求导和输出都全在类Poly里.这两个类之间也没有继承等关系,所以整体看起来还是偏向C语言的思路,这也是这次作业最大的问题.在类Poly里面,我建立了两个链表来分别存储每一项的系数和幂指数. 从以上两…
面向对象设计与构造:OO课程总结 第一部分:UML单元架构设计 第一次作业 UML图 MyUmlInteraction类实现接口方法,ClassUnit和InterfaceUnit管理UML图中的类和数据单元 MyUmlInteraction类整合UML类图中的所有数据元素,并用Map建立相应的Id到UmlElement的映射 ClassUnit除了记录自身的属性,关联和实现接口外,采用All-XXX的形式记录来自父类的上述元素继承和自身的上述元素 InterfaceUnit分别记录了自身继承的…
1  概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2  七大OO面向对象设计 2.1 单一职责原则SRP(Simple Responsibility Principle) 单一职责原则,就是一个设计元素只做一件事.什么是“只做一件事”?就是少管闲事.现实中也是如此,如果让一个人认真的去做一件事,那么任何人都有信心可以做到很出色.就一个类而言,应该仅有一个引起它变化的原因,如果你能想到两个…
面向对象设计与构造:JML规格单元作业总结 第一部分:JML语言理论基础 JML语言是什么:对Java程序进行规格化设计的一种表示语言 使用JML语言有什么好处: 用逻辑严格的规格取代自然语言,照顾马龙的语文水平.一切挑战规则的行为必将受到严厉惩罚 代码维护性高,让大牛的代码不再晦涩,让轮子制造机无机可乘 JML(Level 0)语法 单行注释 //@ public model non_null int [] elemen[]ts; JML规格所管理的数据(规格变量),并非类的组成部分,non_…
一.第四单元作业总结 第四单元有两次作业,第十三次作业是实现一个UML类图解析器,可以通过输入一些查询指令来查询一些类图的信息.程序的主干部分已经提供,我们的任务就是实现给出的接口,过程并不繁琐.第十四次作业在十三次作业的基础上增加了对UML状态图和UML顺序图的解析以及UML模型合法性判断. 1. 第十三次作业 架构思路: 对于需要存储相关信息和参数的UML对象各开一个专门的类来实现,例如UMLClass,UMLInterface,UMLOperation.同时在第一步识别UMLElement…
第四单元架构设计总结 第一次作业 单独写了MyUmlClass.MyUmlInterface.MyUmlOperation三个类对应UML中相应元素,在UML图中这几个元素包含一些下级元素,如Class包含Operation.Attribute,Operation包含Parameter等,所以就单独设立了新类,将下级元素当作新类的属性存储.所以如果要找一个类的某个方法的参数,就可以找到对应的MyUmlClass,然后根据其属性依次向下级查找即可.另外在MyUmlInteraction的构造方法中…