1、透过现象看本质,机制与策略到底是什么?为什么要将机制与策略分离?
2、反映在系统设计上,机制是目标功能,策略是实现方法,也可以认为是接口与实现。
3、反映在管理上,领导负责机制,员工负责策略,也就是说,领导决定做什么,怎么做是员工的事情。
4、为什么要将机制与策略分离?
假如不分离,会出现什么问题?考虑下面的场景,要完成排序的功能,如果接口和实现捆绑在一起,并使用冒泡排序完成。
那么问题来了,我想换一种排序算法,比如快速排序,接口和实现都要替换。怎么解决这个问题?
也就是机制与策略分离,提供一个排序接口,继承接口,提供不同的实现,这也就是策略模式。
Context关联一个抽象的策略(也就是接口),用不同的具体策略初始化抽象策略,就能调用具体策略的处理流程。