设计模式之策略模式

定义

策略模式将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现并使它们可以相互替换,从而导致客户端程序独立于算法的改变。

开发推荐的方式

复合优先于继承
多用组合,少用继承

设计原则:

面向接口编程;
将共同的;
多用组合,少用继承。

实现:

  1. 通过分离变化得出的策略接口Strategy;
  2. Strategy的实现类;
  3. 客户程序(抽象)中有一个Strategy;
  4. 在客户程序(实现)中选择、组装正确的strategy实现

适用场景

  1. 许多相关的类仅仅是行为差异
  2. 运行时选取不同的算法变体
  3. 通过条件语句在多个分支中选取

java中的comparator

显示 Gitment 评论