设计模式是什么?
设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。是一种解决问题的固定套路。
设计模式是怎么来的?
满足设计原则后,然后慢慢迭代出来的
设计模式解决了什么问题?
前提:具体需求既有稳定点,又有变化点。
期望修改少量的代码,就可以适应需求的变化
比喻:整洁的房间,好动猫,怎么保证房间的整洁?把猫关在笼子里
设计模式基础:
面向对象的思想:
封装:隐藏实现细节,实现模块化
继承:无需修改原有类的情况下通过继承实现对功能的扩展
多态:静态多态:函数重载
动态多态:继承中虚函数重写
设计原则:
1.依赖倒置:
高层模块不应该依赖低层模块,两者都应该依赖抽象
抽象不应该依赖具体实现,具体实现应该依赖于抽象
2.开闭原则:
对扩展开放,对修改关闭
封装、多态
3.面向接口:
封装
4.封装变化点:封装、多态
5.单一职责:封装
6.里氏替换:多态
7.接口隔离:
8.组合由于继承
9.最小知道原则:封装
模板方法
观察者模式:定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
稳定点:一对多的依赖关系,一变化多跟着变化
变化点:多增加,多减少
策略模式:定义一系列算法,把他们一个个封装起来,并且使他们可相互替换。该模式使得算法可独立于使用它的客户程序而变化。
稳定点:抽象去解决
变化点:扩展(继承和组合)去解决它