摘要: 本单元两次作业架构设计 这两次作业全部都是面向需求(指导书)设计的,以更方便实现指导书上限定的功能为目标,所以并没有完全对 Uml 树状结构进行建模。而且由于两次作业之间只是增加需求没有对已有的架构进行重构,所以在此只展示最后一次作业的架构。 第一次作业的架构设计 第一次作业只涉及 UmlInter 阅读全文
posted @ 2019-06-22 13:28 Melles 阅读(195) 评论(0) 推荐(0) 编辑
摘要: JML 理论基础与工具链情况 理论基础 JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。JML是一种行为接口(即一个方法或类型外部可见的内容)规格语言(Behavior Interface Specification Language,BISL 阅读全文
posted @ 2019-05-22 00:00 Melles 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 实现策略 这里结合一下我画的第三次作业的时序图(可能有画的不好的地方)来叙述一下我的实现逻辑。最开始主线程负责创建必要的线程(输入、调度线程)与请求队列类实例;输入线程负责与人进行交互,将获取到的请求放入请求队列;调度线程则每次从请求队列中取出一个请求,将其分发给三个电梯,若需要拆分,则新建一个次级 阅读全文
posted @ 2019-04-22 21:40 Melles 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 代理模式概念 实现一个代理类以及它所对应的受代理对象,其他所有类对受代理对象的访问,都由代理对象代为实现。 优点:在目标对象基础之上,可以增加一些额外的功能。 个人认为,这种模式适用于: 你需要使用别人写好的一个类(别人已经打包成 jar 包,你只有 .class 文件),但是有额外功能需要添加,这 阅读全文
posted @ 2019-04-20 10:13 Melles 阅读(184) 评论(0) 推荐(1) 编辑
摘要: ASID 为了提高TLB的性能,将TLB分成Global和process specific。global 是指常驻在tlb中不会被刷出的,例如内核空间的翻译,process specific 是指每个进程独有的地址空间,当发生进程切换的时候,这部分tlb可以被刷出,为了支持process speci 阅读全文
posted @ 2019-04-15 23:52 Melles 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: 锁的种类 独享锁 VS 共享锁 独享锁:锁只能被一个线程持有(synchronized) 共享锁:锁可以被多个程序所持有(读写锁) 乐观锁 VS 悲观锁 乐观锁:每次去拿数据的时候都乐观地认为别人不会修改,所以不进行加锁操作。乐观锁适用于多读的应用类型。(CAS,Atomic) CAS(Compar 阅读全文
posted @ 2019-04-04 23:47 Melles 阅读(505) 评论(0) 推荐(1) 编辑
摘要: 程序设计结构分析 类图分析 第一次作业 由于第一次作业完成的功能比较简单,而且出于对面向对象设计理念不熟悉(其实现在也不是很熟悉,逃),整个程序设计的非常简单。通过类图(见下)可以看出,程序只有两个类:PolyCal 包含 main 方法,充当表达式类的功能,并且完成对输入的解析;Poly 充当项类 阅读全文
posted @ 2019-03-26 00:32 Melles 阅读(266) 评论(0) 推荐(0) 编辑