设计模式----整洁的房间,好动的猫
(看源码)解决问题的特定方法
解决既有稳定点,又有变化点的问题(全是稳定点写一次就可以,全是变化点--游戏开发、脚本语言不需要编译,热更新数据到服务器)
修改少量代码,解决变化的问题
设计模式基础
面向对象的思想:
封装、继承、多态(动态多态用的最多)
虚函数的使用:早绑定和晚绑定(一个基类的指针指向很多的派生类)
设计原则
依赖倒置:所有的实现都依赖于抽象接口,程序员实现接口,客户调用接口
开闭:对修改关闭对扩展开放
单一职责:类的职责越少越好
接口隔离:
里式替换:虚函数复写要实现父类的所有功能包括特殊功能
组合优于继承:
最小知道原则:
学习设计模式:分析稳定点与变化点
设计模式分类
模板方法:固定表演流程,表演节目可替换更新
稳定点:算法框架 变化点:子流程
类封装:权限设定
实现:子流程作为虚函数开放
基类虚函数订表演节目,子类继承具体实现表演节目(一个子类表示一个版本的迭代,实现所有基类定义的节目)
(基类不能用public,因为用户不可访问,但是又要子类访问,protected可以实现)
用户调用:一个基类的指针