导图社区 《面向对象思考过程》
《面向对象思考过程》读书笔记,分别有封装、多态、组合、继承的内容,感兴趣快来看看。
社区模板帮助中心,点此进入>>
面向对象
封装
类
属性
建议类自身控制属性访问
用对外方法来提供属性
方法
只对外提供必要的方法
重载方法签名,包括方法名和参数列表,不包括返回值
构造方法
初始化内存分配
默认构造方法,没有定义构造方法时,系统提供默认构造方法
最佳实践始终包含一个构造方法,初始化属性
注释
/**/多行注释
//单行注释
类设计指导
合理对现实世界建模
识别公共接口
最小化公共接口
隐藏实现,改变实现不会影响用户
设计健壮的构造函数(以及析构函数)
把对象设置为安全的初始状态
在类中设计错误出理
应用应当绝不崩溃
使用注释给类加上文档
构造可以合作的对象,一个类不与其他类交互是无有的
设计时请考虑重用
设计时请考虑扩展性
使用描述性的名称,命名约定很重要,让他人容易理解
抽象不可移植代码,比如只在一种平台上运行成功的代码,不要放在主类中
提供一种方式来复制和比较对象,对于提供拷贝功能很重要
尽可能小的作用域
类的职责只与自身相关,不要包含其他无关功能
设计时请考虑可维护性
保持类的耦合度越低越好
开发过程中使用迭代
不要一次性写完所有代码,用小步增长的方式编写代码
测试接口
接口的最小实现通常称为桩
设计时应该保留测试桩,方便之后使用
使用对象持久化
json
db
xml
对象
基于类创建的实例
this是对当前对象的引用
使用对象进行设计
提供正确的分析
明确需求
条目
编写工作陈述文档
整个系统的描述
可以给客户看文档
收集需求
必须非常详细
最终表现
开发用户接口的原型
用户接口
无需实现业务逻辑
识别类
可以将名词高亮出来
划分功能,对象
确定每个类的职责
确定类之前如何协作
确定类模型描述系统
UML
多态
相同的接口,实现不同
不相同的对象对同一个方法的响应不用
组合
has-a关系
利用其他对象构建对象
优势
降低系统的复杂度
可以分构建系统和子系统,且可以被独立测试和维护
分类
聚合
相同生命周期
基数1..n
联合
分别独立,引用
继承
is-a关系
超类
构建对象时,先初始化超类构造
子类
子类继承超类
子类必须实现虚方法
继承会减弱封装
超类改动会波及所有子类
平衡复杂度和更多功能是门艺术
接口
定义没有明显联系的类之前的相同行为