简介
- 设计模式是经过验证的面向对象设计经验
- 模式不是给你代码,是给你通用设计问题的解决方案,你在你的程序中应用这些模式
- 模式不是被发明的,是被发现,总结的
- 多数模式和原则都是解决软件
变更
的引发的问题
面向对象特征
- Abstraction 抽象
- Encapsulation 封装
- Polymorphism 多态
- Inheritance 继承
设计原则
识别程序中变化的部分
将程序中变化的部分与不变的部分分离,封装,这样将来你可以改变或者扩展这部分而不影响其他部分
面向接口而不是面向实现编程
此处接口
泛指接口和抽象父类
尽量使用对象组合而不是继承
类中类对象作为类的属性来实现功能复用,增加灵活性,同时允许子类运行时(通过set
方法)改变对象行为
努力在交互对象之间实现松耦合设计
松耦合的设计可以使我们构建灵活的OO系统,能够很好的应对变更,因为他们对彼此依赖度低
设计目标
- Reusable 可复用性
- Extensible 可扩展性
- Maintainable 可维护性