软件构造实验二总结
实验二主要是基于ADT和OOP来进行编程,并且训练我们书写测试和规约的能力。
P1 Poetic Walks
构建一个加权有向图的ADT
一个graph类和其两种实现ConcreteEdgesGraph和ConcreteVertexGraph
并且还用到了泛型编程。
P1的一大重点还是在测试上,对于抽象方法的测试,有一点不同的就是无法实例化,因为抽象方法是不能实例化的嘛,所以就用了这样的方法来构造一个空图:
然后就是规约,AF,RI和表示暴露。
对于表示暴露这里采用了防御使拷贝和field不变。
针对规约和AF,RI的书写也通过这次实验有了进一步的认识,写的时候感觉很麻烦,但是写完后在之后用到该函数的时候就很方便,防止你忘记函数功能而重新看函数。
P2 Re-implement the Social Network in Lab1
就是利用一中的图ADT来构造Lab1中的人际关系网,就是P1中的ADT的实际运用。
只要把Lab1中的图实现都换成这个ADT就好了,然后各种图操作也用P1中的ADT里的方法实现。
P3 Playing Chess
棋类游戏,自己设计一套完整的ADT,自己设计规约,AF,RI等。
就很像自己开发一个项目,用户把需求告诉你,然后咱们再根据需求来完成程序。
P3要求的棋类游戏主要有两种,一种是类似围棋的,下棋双方的棋子都是单一的,并且棋子本来并不在棋盘上,需要棋手一步一步下的时候&#x