当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京大学:《数据结构与算法》课程教学资源(实习课件PPT)界面技术(界面和排错)

资源类别:文库,文档格式:PDF,文档页数:44,文件大小:569.42KB,团购合买
人机界面基本原则、排错的技巧
点击下载完整版文档(PDF)

界面和排错 王栋 2007.11.21

界面和排错 王栋 2007.11.21 2007.11.21

界面( Interface) 在造墙之前,我必须设法弄清 该把什么放在墙里,什么放在墙外, 最需要防御的又是什么 确实有些东西不喜欢墙 总希望它倒下来 Robert frost,《修墙》

界面(Interface) (Interface) 在造墙之前,我必须设法弄清 在造墙之前,我必须设法弄清 该把什么放在墙里,什么放在墙外, 该把什么放在墙里,什么放在墙外, 最需要防御的又是什么。 最需要防御的又是什么。 确实有些东西不喜欢墙, 确实有些东西不喜欢墙, 总希望它倒下来。 总希望它倒下来。 — Robert Frost, Robert Frost,《修墙》

什么是界面( nterface)? >界面就是接口( Interface 。向调用者隐藏实现细节 程序界面 类和函数的接口 自己用的小程序中无关紧要 。在提供给别人用的时候非常有意义的 用户界面 风格:简单性、清晰性、规范性、统一性、熟悉性和 严谨性 鲁棒性:保证在遇到坏的输入时本身不会受到损害

什么是界面(Interface) (Interface) ? ¾ 界面就是接口(Interface) (Interface) z 向调用者隐藏实现细节 ¾ 程序界面 z 类和函数的接口 类和函数的接口 z 自己用的小程序中无关紧要 自己用的小程序中无关紧要 z 在提供给别人用的时候非常有意义的 在提供给别人用的时候非常有意义的 ¾ 用户界面 z 风格:简单性、清晰性、规范性、统一性、熟悉性和 简单性、清晰性、规范性、统一性、熟悉性和 严谨性 z 鲁棒性:保证在遇到坏的输入时本身不会受到损害 保证在遇到坏的输入时本身不会受到损害

程序界面 团队合作 课程项目 公司项目 开源项目 目标:让别的程序员无障得地,安全地使 用你的代码。 类和函数的接口 错误处理

程序界面 ¾ 团队合作 z 课程项目 z 公司项目 z 开源项目 ¾ 目标:让别的程序员 目标:让别的程序员无障碍地、安全地 无障碍地、安全地使 用你的代码。 z 类和函数的接口 类和函数的接口 z 错误处理

类和函数的设计原则 单一功能原则( Single Responsibility Principle) 开放/封闭原则(Open/C| ose Principle) >最小惊讶原理( Least Surprise Principle) 完整且最小化( Complete and Minimal) >尽量使用 const >避免公共成员变量 尽量使用传址 如果用不到编译器缺省的成员函数,就明确的禁用它 分割命名空间 写一个好的头文件

类和函数的设计原则 类和函数的设计原则 ¾ 单一功能原则(Single Responsibility Principle) (Single Responsibility Principle) ¾ 开放 /封闭原则(Open/Close Principle) (Open/Close Principle) ¾ 最小惊讶原理(Least Surprise Principle) (Least Surprise Principle) ¾ 完整且最小化(Complete and Minimal) (Complete and Minimal) ¾ 尽量使用const ¾ 避免公共成员变量 避免公共成员变量 ¾ 尽量使用传址 ¾ 如果用不到编译器缺省的成员函数,就明确的禁用它 如果用不到编译器缺省的成员函数,就明确的禁用它 ¾ 分割命名空间 ¾ 写一个好的头文件 写一个好的头文件

类和函数的设计原则(1/10) 单一功能原则( Single Responsibility Principle 处理的事情太多的类是脆弱的。 比如,一个全文索引类 FullTextsearch,既要 读取数据、分词,又要建立倒排索引并写入磁 盘,还要读取磁盘文件并检索,太大,太臃胂 类应该只提供单一的功能 只有一个可能引起修改类代码的原因 拆分与合并

类和函数的设计原则 类和函数的设计原则(1/10) ¾ 单一功能原则(Single Responsibility (Single Responsibility Principle) Principle) z 处理的事情太多的类是脆弱的。 处理的事情太多的类是脆弱的。 z 比如,一个全文索引类 比如,一个全文索引类FullTextSearch FullTextSearch,既要 读取数据、分词,又要建立倒排索引并写入磁 读取数据、分词,又要建立倒排索引并写入磁 盘,还要读取磁盘文件并检索,太大,太臃肿 盘,还要读取磁盘文件并检索,太大,太臃肿 了。 z 一个类应该只提供 一个类应该只提供单一的功能 • 只有一个可能引起修改类代码的原因 只有一个可能引起修改类代码的原因 • 拆分与合并

举例:全文索引系统 Query Data source search Hits index analysis Indices store

举例:全文索引系统 举例:全文索引系统 index analysis search Indices store utility Data source Hits Query

类和函数的设计原则(2/10) >开放封闭原则(open/ Close Principle) 一个类应该对扩展开放,对修改关闭 。对新的功能的扩充,应该通过增加新类实现,而不是 修改已有类的代码 比如,boss让你编写一个计算中国个人所得税的计算 器产品,而有一天一个美国客户来了 好处 降低程序各部分之间的耦合性,使程序模块互换成为可 使软件各部分便于单元测试。 利于实现软件的模块的互换,软件升级时可以只部署发生变化 的部分,而不会影响其它部分

类和函数的设计原则 类和函数的设计原则(2/10) ¾ 开放 /封闭原则(Open/Close Principle) (Open/Close Principle) z 一个类应该对扩展开放,对修改关闭 一个类应该对扩展开放,对修改关闭 z 对新的功能的扩充,应该通过增加新类实现,而不是 对新的功能的扩充,应该通过增加新类实现,而不是 修改已有类的代码 修改已有类的代码 z 比如,boss让你编写一个计算中国个人所得税的计算 让你编写一个计算中国个人所得税的计算 器产品,而有一天一个美国客户来了 器产品,而有一天一个美国客户来了 … z 好处 • 降低程序各部分之间的耦合性,使程序模块互换成为可能。 • 使软件各部分便于单元测试。 • 利于实现软件的模块的互换,软件升级时可以只部署发生变化 的部分,而不会影响其它部分

类和函数的设计原则(3/10) >最小惊讶原理( Least Surprise Principle) 程序对用户的响应尽可能不使用户感到惊讶 重载函数,覆盖函数,或者子类实现父类虚函 数时,应该基本维持函数原来所期望的功能 class Cat: public Pet i public class Pet i void Talko{cout<<“喵! public virtual Talko class Dog: public Pet i public void Talko[ Sleep: 1

类和函数的设计原则 类和函数的设计原则(3/10) ¾ 最小惊讶原理(Least Surprise Principle) (Least Surprise Principle) z 程序对用户的响应尽可能不使用户感到惊讶 程序对用户的响应尽可能不使用户感到惊讶 z 重载函数,覆盖函数,或者子类实现父类虚函 重载函数,覆盖函数,或者子类实现父类虚函 数时,应该基本维持函数原来所期望的功能 数时,应该基本维持函数原来所期望的功能 class Pet { class Pet { public: public: virtual Talk() = virtual Talk() = 0; }; class Cat: public Pet { class Cat: public Pet { public: public: void Talk() { void Talk() { cout << “ 喵!"; } } class Dog: public Pet { class Dog: public Pet { public: public: void Talk() { Sleep(); } void Talk() { Sleep(); } }

类和函数的设计原则(3/10)cont 致性和规范性 。比如,STL容器类提供了非常一致的界面,这 样,即使面对一个不熟悉的函数,预计应该如 何使用它也会变得很容易

类和函数的设计原则 类和函数的设计原则(3/10) cont. (3/10) cont. ¾ 一致性和规范性 一致性和规范性 z 比如,STL容器类提供了非常一致的界面,这 容器类提供了非常一致的界面,这 样,即使面对一个不熟悉的函数,预计应该如 样,即使面对一个不熟悉的函数,预计应该如 何使用它也会变得很容易。 何使用它也会变得很容易

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共44页,可试读15页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有