Chapter1 原则的由来:唯有变化才是永恒
2024年12月26日大约 2 分钟
Chapter1 原则的由来:唯有变化才是永恒
从“变化”的角度去看设计原则
当我们讨论设计模式时,我们实际上默认是在OOP的大背景之下的,而所谓的OOP,即是以对象为基本粒度进行系统元素的关系构建。OOP是规则从现实世界到编程世界的映射,而无论现实世界还是编程世界,其历史经验都不断地重复证明着对象是不稳定的这一铁律。
有句话讲,整个世界的问题分为四类:
- 你知道你知道的
- 你不知道你知道的
- 你知道你不知道的
- 你不知道你不知道的
我们在代码结构、系统架构上所做的努力,核心都是围绕第三点你知道你不知道的来构建的,而在这种情况下,行之有效又具有普适意义的方法很少,并且不可能很具象,都是一些方法论层面的东西,这就是我们常提到的设计原则:
● 单一职责
● 开闭原则
● 里氏替换
● 接口隔离
● 依赖反转
结合我们对问题场景的描述,其实可以发现,这些原则其实都在处理同一件事情:假设会变,并极力控制变化的影响范围。比如单一职责,粒度约细越能控制影响范围;比如依赖反转,为后续的变化留一手。其实我一直觉得这里面的“开闭原则”有点另类,它永远不会错,因为它只是在说空话,没有实践指导意义。
而在这些方法论的指导下,对于一些开发领域场景的场景,我们积累了一些较为通用的解决方案,而这些就是我们之后要提到的具体的设计模式。无论如何,切记:模式代码是辅助解决问题的工具,不要让它成为束缚。