- 这个模式中隐藏(封装)了什么实现(变化)?
- 这个模式中有什么共性规律(哪类变化)?
- 这个模式中的对象职责是什么?
- 这个模式中对象之间的关系是什么?
- 这个模式常用在哪些场景中?
- 这个模式基于常用场景的通用代码实现是什么?
- 这个模式如何基于上下文环境来进行设计和使用?
希望结合这个框架,能让你更快地区分设计模式的表象和本质。
你会发现,单独讲一个模式时,其实原理看上去都很容易,如果遇到了这个特定的场景,使用模式也能很容易解决问题。而随着学习的模式越多,反而越不知道该怎么决策,
这时就要时刻提醒自己:使用模式后会带来什么收益?又会损失什么?为什么要使用这个模式?然后再去思考如何实现。这个过程和我们课程讲解的顺序恰好是反过来的,这也是大家很容易忽略的地方,所以一定要注意。
在你所熟悉的 Spring 框架中,你知道 Spring 单例 Bean 与单例模式的区别是什么吗?