软件开发的分离之术-软件易变性的应对之道
软件开发的分离与分解不同;
分解关注于功能的划分;
分离注重于不变与可变;
软件的最大分离是头文件与实现文件的分离;
头文件代表抽象;
实现文件代表具体;
分离与绑定是相对应的概念;
软件变化的根源在于两个方面:
1、结构的变化;2、算法的变化;
接口与实现的分离;
抽象与具体的分离;
本质上是稳定部分和不稳定部分的解藕;
关注点分离:
上述论述中的四句话总结:
- “系统中的一个部分发生了变化,不会影响其他部分。”
- “即使需要改变,也能够清晰地识别出那些部分需要改变。”
- “如果需要扩展架构,将影响最小化,已经可以工作的每个部分都将继续工作。”
为什么要分离:
稳定的部分保持稳定;
变化的部分随时变化;
编译时绑定与运行时绑定;
我思故我在