可扩展性和框架加数据
可扩展性
用接口来实现聚合
给Room类实现的新方法,把方向的细节彻底隐藏在Room类内部了
今后方向如何实现就和外部无关了
用容器来实现灵活性
Room的方向是成员变量表示的,增加或减少方向就要改变代码
如果用Hash表来表示 方向,那么方向就不是“硬编码” 的了
可扩展性:你的代码不需要经过修改,就可以扩展去适应新的数据、新的内容
可扩展性是指系统为了应对将来需求的编号而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量的更改就可以支持,无须整个系统重构或者重建
两个基本条件:正确预测变化、完美封装变化
预测变化:
不能每个设计点都考虑可扩展性
不能完全考虑可扩展性
所有预测都有出错的可能
应对变化:第一种:将“变化”封装在一个变化层,将不变的封装在一个独立的稳定层
1.系统需要拆分出变化层和稳定层
2.需要设计变化层和稳定层之间的接口
第二种:提炼出一个抽象层和实现类
框架加数据
以框架+数据来提供可扩展性
命令的解析是否可以脱离if-else
定义一个Handler来处理命令
用Hash表来保存命令和Handler之间的关系