优秀软件的共同特征:低耦合,高内聚
多态性:静态多态性(函数多态性、函数重载)、动态多态性(虚函数)
面向对象的基本原则
开闭原则:一个模块对扩展应是开放的,对修改应该是关闭的。
完全替换原则:派生类应该能完全替换掉基类。
依赖倒置原则:依赖于抽象,而不要依赖于具象。
非循环依赖原则:包和包之间不能有循环依赖关系。
只实现你真正需要的东西,不要去实现你认为需要的东西。
不要重复自己:任何代码都只出现一次。
保持简化的设计。
为人写代码,而不是为机器写代码。
面向对象的开发过程:
面向对象分析:需求——分析模型
架构分析
面向对象设计
编码
测试
框架和类库的区别
软件生命周期模型:瀑布模型,迭代模型(RUP、XP)
隐藏在设计模式背后最重要的面向对象设计原则和设计理念:
设计模式最根本的意图是适应需求变化。(我说的:没需求变化,设计模式似乎变没有存在的价值)
针对接口编程,而不要针对实现编程。
优先使用聚合,而不是继承。