摘要: 总结本单元作业的架构设计 参考了一些往年的博客,发现主要有两种完成作业的风格: 根据UML的形式,建立起建立每一种umlelement子类的“加强版类”,并在构造函数中建立好每个类的联系,其余用来 不建立实际的umlelement之间的关系,而是根据所需要的功能指令,用抽象的方式直接实现。 后者的优 阅读全文
posted @ 2022-06-27 15:06 wooood 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 前言 本单元的代码任务集中在了学习JML的使用,并根据所给JML实现相应的方法和类。 契约式编程、防御式编程与进攻式编程 契约式编程 契约式编程要求我们在「前提条件」、「后继条件」和「不变量条件」进行契约的检查。类似的,例如检查参数,一旦参数不对,当即撕毁契约。 比如后端的方法因为传入的参数不在设计 阅读全文
posted @ 2022-06-06 14:14 wooood 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 同步块的设置 本单元的基本架构由以下三个主要部分组成: Inputhander:用来接收、分类输入,是线程。 Controller:用来处理输入、处理结束、是共享对象。 Elevator、Conveyer:电梯本身,用来接送乘客,是线程。 出于输出线程安全的考虑,再外加一个Outputer的单例对象 阅读全文
posted @ 2022-05-01 17:54 wooood 阅读(22) 评论(1) 推荐(0) 编辑
摘要: 前言 本文将按照作业的顺序依次展示作业中的思路,以及个人认为比较有价值的代码。考虑到阅读体验,本文将圈复杂度分析放在了文末。 第一次作业 结构概述 类图如下 整个表达式的处理流程大致如下图 空白符的处理 空白符在一开始直接删去即可。 String s = string.replaceAll("[ \ 阅读全文
posted @ 2022-03-26 14:12 wooood 阅读(21) 评论(2) 推荐(0) 编辑