创建高质量的代码(5-9)
2016-01-18 15:14
190 查看
一:设计中的挑战
--设计是一个险恶的问题。
--设计是一个了无章法的过程(即使他能得到清爽的结果)。
--设计就是确定取舍和调整顺序的过程。
--设计受到诸多的限制。
--设计是不确定的。
--设计是一个启发式是过程
--设计是自然而然形成的。
二:管理复杂度。
--把任何人在同一时间处理问题的复杂度降到最低。
--不要让偶然的复杂度快速的增长。
三:设计构造快-启发式方法
1:找出现实中的对象:
--辨识对象及属性。
--定义对对象的操作。
--确定每个对象可以对其他对象进行的操作。
--确定对象的哪些部分对其他对象可见。
--定义每个对象的接口。
2:形成一致的抽象:
3:封装实现细节。
4:当继承能简化设计时就继承。
5:信息隐藏。
6:找出容易改变的区域。
7:松耦合,高内聚。
8:构造分成结构。
9:严格描述类契约。
10:分配职责,为测试而设计,避免失误。
11:保持设计的模块化。
四:ADT(abstract data type)抽象数据类型:是指一些数据及对这些数据所进行操作的集合。
--可以隐藏细节。
--改动不会影响整个程序。
--让接口提供更多的信息。
--更容易提高性能。
--让程序的正确性更显而易见。
--程序更具有自我说明性。
--无需再程序内到处传递参数。
五:良好的类接口:创建高质量的类,第一步,也可能是最重要的一步,就是创建一个好的接口。
1:类的接口应该展现一致的抽象层次。
2:一定要理解类要实现的抽象是什么。
3:提供成对的服务。
4:把不相关的信息转移到其他的类中。
5:谨防在修改的时候破坏接口的抽象。
6:不要添加与接口抽象不一致的公共成员。
7:同时考虑抽象性与内聚性。
六:良好的封装:(阻止你看见细节。与抽象是一起的,要么全有,要么全没有。)
--尽可能的限制类和成员的可访问性。
--不要暴漏公开成员函数。
--避免吧私用的实现细节放入到类的接口中。
--不要对类的使用者做出任何的假设。
--要格外的警惕从语义上破坏封装。
--留意过密的耦合关系。
七:子程序
--降低复杂度
--引入中间,易懂的抽象。
--避免代码重复。
--隐藏顺序
--提高可移植性。
--简化复杂的布尔判断。
--改善性能。
--子程序的名字非常的重要
--子程序按照内聚性可以分为许多类。功能性内聚是最佳的一种。
八:防御式编程:保护程序免受遭非法数据的破坏。
--检查所有来源于外部数据的值。
--检查子程序的所有的输入输出值。
--决定如何处理错误的输入值。
九:创建一个类的步骤:
1:创建类的总体设计
2:创建类的子程序。
3:复审并测试整个类。
--设计是一个险恶的问题。
--设计是一个了无章法的过程(即使他能得到清爽的结果)。
--设计就是确定取舍和调整顺序的过程。
--设计受到诸多的限制。
--设计是不确定的。
--设计是一个启发式是过程
--设计是自然而然形成的。
二:管理复杂度。
--把任何人在同一时间处理问题的复杂度降到最低。
--不要让偶然的复杂度快速的增长。
三:设计构造快-启发式方法
1:找出现实中的对象:
--辨识对象及属性。
--定义对对象的操作。
--确定每个对象可以对其他对象进行的操作。
--确定对象的哪些部分对其他对象可见。
--定义每个对象的接口。
2:形成一致的抽象:
3:封装实现细节。
4:当继承能简化设计时就继承。
5:信息隐藏。
6:找出容易改变的区域。
7:松耦合,高内聚。
8:构造分成结构。
9:严格描述类契约。
10:分配职责,为测试而设计,避免失误。
11:保持设计的模块化。
四:ADT(abstract data type)抽象数据类型:是指一些数据及对这些数据所进行操作的集合。
--可以隐藏细节。
--改动不会影响整个程序。
--让接口提供更多的信息。
--更容易提高性能。
--让程序的正确性更显而易见。
--程序更具有自我说明性。
--无需再程序内到处传递参数。
五:良好的类接口:创建高质量的类,第一步,也可能是最重要的一步,就是创建一个好的接口。
1:类的接口应该展现一致的抽象层次。
2:一定要理解类要实现的抽象是什么。
3:提供成对的服务。
4:把不相关的信息转移到其他的类中。
5:谨防在修改的时候破坏接口的抽象。
6:不要添加与接口抽象不一致的公共成员。
7:同时考虑抽象性与内聚性。
六:良好的封装:(阻止你看见细节。与抽象是一起的,要么全有,要么全没有。)
--尽可能的限制类和成员的可访问性。
--不要暴漏公开成员函数。
--避免吧私用的实现细节放入到类的接口中。
--不要对类的使用者做出任何的假设。
--要格外的警惕从语义上破坏封装。
--留意过密的耦合关系。
七:子程序
--降低复杂度
--引入中间,易懂的抽象。
--避免代码重复。
--隐藏顺序
--提高可移植性。
--简化复杂的布尔判断。
--改善性能。
--子程序的名字非常的重要
--子程序按照内聚性可以分为许多类。功能性内聚是最佳的一种。
八:防御式编程:保护程序免受遭非法数据的破坏。
--检查所有来源于外部数据的值。
--检查子程序的所有的输入输出值。
--决定如何处理错误的输入值。
九:创建一个类的步骤:
1:创建类的总体设计
2:创建类的子程序。
3:复审并测试整个类。
相关文章推荐
- Java笔记---将java程序打包成exe程序
- php过滤函数封装
- Java中的一些类的对比以及容器
- c++ 程序设计 wee4 作业 大整数四则运算
- ASP.NET全球化与本地化 c#多国语言的支持 (项目支持多国语言的开发)
- Laravel PHPExcel 使用
- [C#新手入门 九] C#读取Excel表中的数据时,有的数据读取不到
- MATLAB绘制平行六面体
- 查找附近网点geohash算法及实现 (Java版本号)
- python(1) - 第一个程序 Hello World!
- Python数据类型-字典
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
- php防注入函数隐患
- JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决
- VC++6.0插件系列(绝对经典)
- CB2010操作Word代码
- python 变量
- Python算法题----在列表中找到和为s的两个数字
- Springside4搭建自带例子
- Java NIO 系列教程