302
社区成员
在Java代码编写之前,使用UML进行类图设计,提供了一种系统化的方法来设计系统,使得构思不是“走一步写一步”的线性思考,而是依据关系明确的类图来设计,编程过程中系统结构和组件之间的关系更加明晰。这种可视化的建模同样有利于后续的开发,在面临复杂的项目时不至于“今天忘了昨天的思路”。这种高层次的抽象模型细化到具体实现细节,也有助于理解项目的全貌。
Main类:程序入口。
Library、SelfService类:图书馆管理类,是主要的功能类。在该类中进行其余所有类的初始化,存储相关数据并实现所有对书籍和学生的操作。
BookShelf、BookDriftCorner、BorrowReturnOffice、AppointmentOffice类:保存着各部门的书籍及相关信息的类
Student类:针对每个学生设计的类,保存每个学生的相关信息。
第一单元:作为首次接触面向对象程序设计的单元,在编程时我还保留着许多的面向过程思维。层次化描述其实是一个很好地“鼓励你去思考什么是面向对象”的方式,这也是我觉得自己感受到了“架构”是什么的开始,也理解了为什么我们需要高内聚低耦合的“模块”。
第二单元:第二单元关于电梯的项目主要考察的是多线程思想,学习了一些设计模式比如工厂模式。在这一个单元可以说学到了一些优化架构和“什么是好的架构”的知识。
第三单元:前两个单元设计和实现还停留在线性的、一次性完成的阶段。从JML设计开始,就能感受到一些设计和实现相分离的精神。
第四单元:这一单元关于UML类图的考察可以说完全体现了先设计后实现的思想,也是“开闭原则”体现最明显的一单元,明确了迭代该怎么做的思路,可惜我迭代写的也不好也没重构,写的很糟糕T T。
一开始我没有使用评测机来测试,自己思考有效的测试点来测试,但是说实话我的水平不太够mid点该错一堆还是错一堆,后面使用了测评机,和大佬同学多交流了易错点,学到了很多。
这门课程的设计和我想的不太一样,不是那种围绕着某个知识点做题,而是从题目中内藏一些面向对象的思想。总体上来说学到了不少,觉得最难能可贵的还是写了不少,下笔了就有收获。