做完Lab2之后,我最大的收获不是说利用某些更优的方法去实现了某些功能,而是习惯了一种流程化的,谋定而后动的代码编写方式。
ADT
抽象数据型。在数据结构中第一次接触到ADT,指将数据对象,数据对象的关系,以及对对象的操作封装在一起的一种表达。在数据结构中也自己用链表实现了一些简单ADT,栈,队列等,但始终没有写一个面向实际应用场景的ADT,Lab2中我们要写一个Java中不存在的ADT,Graph。
在之前设计ADT的时候只是单纯的实现对数据对象的一些操作,并没有规范化的设计路线,而Lab2让我感觉与以前大不相同的地方就是它要求你有一套规范化的流程去做设计这件事,写spec,编写test,写RI,AF,防止表示泄露,这些准备工作都做完之后,才是具体ADT的实现,一开始会很不习惯这种编程方式,但是当做完Lab2,到Lab3之后,一旦需要设计的ADT变多,这种流程化的编程模式的好处一下子就显现出来了,清晰的spec,完善的checkRep,都在为你之后编写ADT做准备,减轻你之后的工作量,习惯了这种方式之后真的受益无穷!!!