结对编程

同组同学:石岚

结对编程的优点和缺点

     优点:①'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借口来和其他模块交流

原文地址:https://www.cnblogs.com/xmscse/p/4937865.html