categories:
- IT随笔
在现代操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于一个系统的基层,而策略则处于系统的高层。
在程序设计中,机制与策略分离的思想可以提高程序的可复用性,可维护性和可调试性使程序更具有高内聚低耦合性。如果说机制是砖,那么策略就是房子,同样的砖可以建不同的房子,我们不能把建砖和建房子混在一起实现,所以,把策略同机制揉成一团有两个负面影响:一来会使策略变得死板,难以适应用户需求的改变,二来也意味着任何策略的改变都极有可能动摇机制。
策略的变化要远远大于机制的变化。将两者分离,可以使机制相对保持稳定,而同时支持策略的变化。
这条准则在GUI环境之外也被广泛应用。总而言之,这条准则告诉我们要将接口和引擎剥离开来。
UIView继承自UIResponder,主要特点是可以响应触摸事件。CALayer专司图层内容管理和绘制。CALayer是机制,在系统中属于不可变部分,UIView属于策略,在系统中属于可变部分。构建一个系统要尽肯能分离可变部分和不可变部分。
在代码大全中提到“隔离变化”的概念,以及设计模式中提到的将易变化的部分和不易变化的部分分离也是这个思路。