以下的原则是摘自《代码大全(第二版)》,放在这里提醒自己写程序时尽量的优化。当然仁者见仁,智者见智,这些东西不一定都适合,只是当作参照而已,这里没有针对具体的语言,还得具体情况具体分析。括号内为自己的理解,如有错误,还请指出。
在程序里创建类的原因:
1.对现实世界的对象建模(如:文章类,用户类)
2.对抽象对象进行建模(如:类型:也许是文章类型或用户类型)
3.降低复杂度
4.隔离复杂度
5.隐藏实现细节
6.限制变化所影响的范围(经常变化的部分放到一个或几个类中,如业务逻辑)
7.隐藏全局数据
8.让参数传递更顺畅(比如说文章,包括标题、作者、时间、内容等等,在读或写文章时可以把文章的对象作为参数传递)
9.创建中心控制点 (如把对数据库的操作放到单独的类中)
10.让代码更易于重用
11.为程序族做计划
12.把相关操作放在一起
13.实现特定的重构
应该避免的类:1.万能类 2.消除无关紧要的类:如只包括数据不包括行为的类,是否真的有必要?3.避免用动词命名的类,如只有行为没有数据
创建子程序的理由:
1.降低复杂度
2.引入中间的、易懂的抽象(比如:上传文件时问了得到文件名称,要写如下代码:
while(filename.IndexOf("\\")>=0)
{
filename=filename.Substring(filename.IndexOf("\\")+1,filename.Length-1-filename.IndexOf("\\"));
}
这里我们可以把这段代码单独放到一个方法中:GetFileName(),这样以后在用到的时候直接调用这个方法就行了。
3.避免代码重复
4.支持子类化(即在派生类重写的时候)
5.隐藏顺序(如果两个动作必须一前一后发生,可放到一个方法中)
6.隐藏指针操作
7.提高可移植性
8.简化复杂的逻辑判断(如判断用户输入是否合法)
9.改善性能(子程序中的算法可以随时改变,只要其返回保持一致,就不会影响其他地方的调用)
在程序里创建类的原因:
1.对现实世界的对象建模(如:文章类,用户类)
2.对抽象对象进行建模(如:类型:也许是文章类型或用户类型)
3.降低复杂度
4.隔离复杂度
5.隐藏实现细节
6.限制变化所影响的范围(经常变化的部分放到一个或几个类中,如业务逻辑)
7.隐藏全局数据
8.让参数传递更顺畅(比如说文章,包括标题、作者、时间、内容等等,在读或写文章时可以把文章的对象作为参数传递)
9.创建中心控制点 (如把对数据库的操作放到单独的类中)
10.让代码更易于重用
11.为程序族做计划
12.把相关操作放在一起
13.实现特定的重构
应该避免的类:1.万能类 2.消除无关紧要的类:如只包括数据不包括行为的类,是否真的有必要?3.避免用动词命名的类,如只有行为没有数据
创建子程序的理由:
1.降低复杂度
2.引入中间的、易懂的抽象(比如:上传文件时问了得到文件名称,要写如下代码:




3.避免代码重复
4.支持子类化(即在派生类重写的时候)
5.隐藏顺序(如果两个动作必须一前一后发生,可放到一个方法中)
6.隐藏指针操作
7.提高可移植性
8.简化复杂的逻辑判断(如判断用户输入是否合法)
9.改善性能(子程序中的算法可以随时改变,只要其返回保持一致,就不会影响其他地方的调用)