ArrayList类中其中有一个sort排序方法
定义如下
public virtual void Sort(IComparer comparer)
其中方法int Compare(object x, object y)
摘要:比较两个对象并返回一个值,指示一个对象是小于、等于还是大于另一个对象。
参数:x: 要比较的第一个对象。y: 要比较的第二个对象。
返回值:值 条件 小于零 x 小于 y。 零 x 等于 y。 大于零 x 大于 y。
参数:x: 要比较的第一个对象。y: 要比较的第二个对象。
返回值:值 条件 小于零 x 小于 y。 零 x 等于 y。 大于零 x 大于 y。
由此IComparer 就是策略模式中策略抽象类,ArrayList乃为Context(引用场景)
附录
UML图,策略模式分属于GOF行为模式

Context(应用场景):
- 需要使用ConcreteStrategy提供的算法。
- 内部维护一个Strategy的实例。
- 负责动态设置运行时Strategy具体的实现算法。
- 负责跟Strategy之间的交互和数据传递。
Strategy(抽象策略类):
定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,Context使用这个接口调用不同的算法,一般使用接口或抽象类实现。
ConcreteStrategy(具体策略类):
实现了Strategy定义的接口,提供具体的算法实现。
浙公网安备 33010602011771号