同组同学:石岚
结对编程的优点和缺点
优点:①'1+1>2',两个人讨论能得出一个比较完善的解决问题的方法
②互相鼓励,使效率提高
缺点:①若偶尔遇到大的分歧,且两个人都坚持自己的想法,将不利于项目的进行
结对编程中石岚的优点和缺点
优点:①具有良好的编程基础和经验
②责任心、执行力强
③解决问题能力较强
缺点:①时间把握不太好
information hiding
信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
信息隐藏的技巧:
①通过接口类
可以通过定义接口类(Java中的interface、C++中的纯虚类)来实现信息隐藏。具体实现如下:
定义一个接口类,仅包含一些公有的成员函数的声明 (Java的abstract函数,C++的纯虚函数),没有任何函数实现,也没有任何成员变量。然后把具体的实现代码放到 该接口类的一个派生子类中。
②通过pimpl手法
pimpl手法也叫作“Opaque Pointer”手法。和接口类的手法不同,pimpl手法不需要靠继承、虚函数等语法的支持,因此对诸如C语言来说,很有用。
interface design
接口设计的方法:
①采用OOD思想,即面向对象的思想,提供类接口或者COM接口。
②对于C函数接口如何设计呢?其实和C++接口设计原则一样,也采用面向对象的思想,只是
将类设计成结构,公共的成员函数变为全局的函数,私有的成员函数变为static函数即可。
函数接口的第一参数就相当于C++中的this指针即可。
loose coupling
这一点在上学期的面向对象课中吴际老师就不断跟我们强调,类与类之间应该尽量减少耦合程度,各司其职。一个好的松耦合方法就是类与类之间的接口设计。由于这次项目的 规模不大,类较少,所以没有使用到类的接口设计。但是在编码过程中尽量使类之间的耦合程度降到最低。
看 Design by Contract, Code Contract 的内容:
优点:能够减少项目的BUG,在后期测试的时候能够降低效率
缺点:对用户要求较高,虽然可以单独提供判错模块对用户的输入及输入状态进行判断,但是时间成本不一定比原本低。
看教科书中,网上有关 unit test 的内容,通过截屏显示你是如何用VS 的unit test 来保证你写的类的质量的:
画出UML 图显示各个实体之间的关系 (画一个图即可)
说明你的算法的关键 (不必列出源代码), 以及独到之处。
算法由三个部分组成:生成器,比较器和计算器。
生成器用来生成指定条件的算法,比较器用来比较数据结果并输出到指定文件上,计算器用来计算表达式的值。最后由Core类通过一个API借口来和其他模块交流