1.模块化
对象就是模块
把数据结构和操作这些数据的方法紧密地结合在一起
2.抽象
过程抽象
数据抽象:类
参数化抽象:C++的“模板”
3.信息隐藏
通过对象的封装性实现类,分离了接口与实现,支持信息隐藏
4.弱耦合
某一部分的变化对其他部分的影响降到最低程度
耦合:一个软件结构内不同模块之间互连的紧密程度
弱耦合:系统度
对象之间的耦合:交互耦合&继承耦合
5.强内聚
内聚衡量一个模块内各个元素彼此结合的紧密程度
在设计时应该力求做到高内聚
面向对象设计的3种内聚:服务内聚、类内聚、一般\特殊内聚
6.可重用
尽量使用已有的类
如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用