再谈面向对象思想

1. 引言

项目的失败大多数都是由差强人意的需求、规划和管理所导致的。但是,当项目确由技术因素导致失败时,其原因通常就是失控的复杂度。  ----《代码大全》

 2.  日常生活人们解决的复杂问题的途径

1)   分解复杂问题;

2)团队内协作,各司其职;

3)几个团队的合作,分工明确,各团队由接口人负责团队间协作。团队间交互形成协议;

3.  层 或 子系统

1)在软件领域无处不再的层(所谓的银弹);

2)是一种抽象:上层不用关注下层的实现;联想7层tcp/ip协议,linux的虚拟文件系统给我们隐藏了不同文件系统的差异,提供统一的系统调用接口。

3) 分层结构,层次职责明确,各层直接耦合度底,交互协议明确。

4 )建立中心控制点。

4.   包和类

1) 类的基础: 是现实世界中的对象建模的过程,是对数据和方法的抽象,封装。 是降低和隔离软件复杂度的最有效表现;`

2) 类的职责明确;功能内聚。

3) 封装容易改变的区域,让变化的影响范围最小化。

4)类的命名: 名+动词 或

3) 不要公开不必要的数据,尽量多的隐藏自己;

5.   方法

1) 职责明确,小即使美。

3) 隐藏自己:别有意报漏自己的行踪。

4) 隔离变化;

 5) 方法的命名:准确描述方法做的所有事情。 动词和宾语;(不需要再类名中的名词)

6) 防御式编程

7) 利用掌握函数式编程思想;

8) 方法的长度: 15行左右吧;

6.   提高编程代码的速度

1)分解问题的能力,也就是划分层次,类职责,方法职责的抽象能力。(最开始不要考虑设计模式,功能完成后,再去重构,相信前边的做好了,美的代码会自然的写出来) 

2)学会利用封装的武器,应对需求的变化。(隔离变化)

3) eclipse 的快捷键。试着让自己少用鼠标; 

     总结: 编程不是机械的过程,程序员也像画家一样。用面向对象思想武装自己,以编程语言为媒介,让自己的思想跃然屏幕之上。

猜你喜欢

转载自pengpeng.iteye.com/blog/1203663