正在加载图片...
举例:全文索引系统 类和函数的设计原则(2/10) 开放封闭原则( Open/close Principle 一个类应该对扩展开放,对修改关闭 对新的功能的扩充,应该通过增加新类实现,而不是 修改已有类的代码 比如,boss让你编写一 中国个人所得税的计算 器产品,而有一天一个美国客户来了… 好处 低程序各部分之间的耦合性,使程序模块互换成为可能。 使软件各部分便于单元测试 利于实现软件的模块的互换,软件升级时可以只部署发生变化 的部分,而不会影响其它部分 类和函数的设计原则(3/10) 类和函数的设计原则(3/10)cont 最小惊讶原理 Least Surprise Principle) 一致性和规范性 ·程序对用户的响应尽可能不使用户感到惊讶 比如,S∏L容器类提供了非常一致的界面,这 重载函数,覆盖函数,或者子类实现父类虚函 样,即使面对一个不熟悉的函数,预计应该如 数时,应该基本维持函数原来所期望的功能 何使用它也会变得很容易 class Pet void Talk0{cout<<“喵r; rtual Talko class Dog: public Pet 类和函数的设计原则(4/10) 类和函数的设计原则(5/10) 完整且最小化( Complete and Minimal) 尽量使用 const const参数 strcpy(charest, const char'src, int 提供调用者需要的所有合理功能 谨慎对待是否要修改调用者的数据 最小化 尽可能让函数个数少 const成员函数 没有任何两个成员函数的功能是重叠的 多快好省! har& operator (nt position onst char& operator] (int position) const;举例:全文索引系统 index analysis search Indices store utility Data source Hits Query 类和函数的设计原则(2/10) ¾ 开放/封闭原则(Open/Close Principle) z 一个类应该对扩展开放,对修改关闭 z 对新的功能的扩充,应该通过增加新类实现,而不是 修改已有类的代码 z 比如,boss让你编写一个计算中国个人所得税的计算 器产品,而有一天一个美国客户来了… z 好处 • 降低程序各部分之间的耦合性,使程序模块互换成为可能。 • 使软件各部分便于单元测试。 • 利于实现软件的模块的互换,软件升级时可以只部署发生变化 的部分,而不会影响其它部分。 类和函数的设计原则(3/10) ¾ 最小惊讶原理(Least Surprise Principle) z 程序对用户的响应尽可能不使用户感到惊讶 z 重载函数,覆盖函数,或者子类实现父类虚函 数时,应该基本维持函数原来所期望的功能 class Pet { public: virtual Talk() = 0; }; class Cat: public Pet { public: void Talk() { cout << “喵!"; } } class Dog: public Pet { public: void Talk() { Sleep(); } } 类和函数的设计原则(3/10) cont. ¾ 一致性和规范性 z 比如,STL容器类提供了非常一致的界面,这 样,即使面对一个不熟悉的函数,预计应该如 何使用它也会变得很容易。 类和函数的设计原则(4/10) ¾ 完整且最小化(Complete and Minimal) z 完整 • 提供调用者需要的所有合理功能 z 最小化 • 尽可能让函数个数少 • 没有任何两个成员函数的功能是重叠的 ¾ 多快好省! 类和函数的设计原则(5/10) ¾ 尽量使用const z const参数 • strcpy(char* dst, const char* src, int); • 谨慎对待是否要修改调用者的数据 z const返回值 z const成员函数 class String { public: char& operator[] (int position); const char& operator[] (int position) const; }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有