OO第四单元课程总结

M_agnuses M_agnuses 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

OO第四单元总结

本单元的正向建模与开发

正向建模与开发是指从需求分析到模型设计再到功能实现的开发方式,在本单元第一次作业中,我尝试了先设计大致模型,确定出将要构建的类和它们至少需要包含的属性,以及几个关键功能的实现思路,再在此基础上完成代码设计,最后再根据代码完善类图;在后两次作业中,由于已经有了整体结构,动手之前就只考虑几个新增的关键功能的实现。

架构设计

本单元的最终设计类图如下:
由于在设计时为每类管理员以及图书馆部门都单独设计了类,并且后续扩展中需要实现多个图书馆,难以使用单例模式简化关系,因此类图中各个类之间的关系非常繁琐。本单元设计中的一个明显问题是过度在意了可扩展性,导致从最后结果看多了很多冗余设计,比如无用的管理员类,以及为每种图书记录的副本去向等,反而缺失了很多可以简化代码的抽象接口的实现,因此在设计时还是应该以当下需求为主,设计好能够更好解决当下问题的模型,无需考虑过多。

设计思维的演进

  • 第一单元主要是对解析器的设计以及对表达式中各类结构及其关系的梳理设计,重点学到了如何从各个类之中提炼出抽象类,如何从更高级的抽象层次入手设计父子类。
  • 第二单元引入了多线程,在设计时需要照顾到共享对象的访问以及死锁等多线程问题,不同于第一单元只需分析对象结构,该单元需要从有哪些线程、它们如何共享对象角度入手设计。
  • 第三单元不涉及主体架构设计,只需要考虑局部数据是否需要采用动态维护,以及如何选用维护策略等局部问题。
  • 第四单元的设计最为复杂,主要需要设计如何存储图书副本情况和预定情况,以及如何按照规定的逻辑处理流程。

    测试思维的演进

    测试主要靠自己构造的个别用例和讨论区的评测机。

    课程收获

    通过一个学期的oo课程学习,我学到了很多。包括uml图的设计、规格的编写与阅读、单例等设计模式、多线程的知识等,也深刻理解了面向对象的设计思想。
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部