作用:定义行为(算法族)并封装起来,调用者可以根据需求相互替换,所以行为的变化独立与调用者。
OO原则:
封装变化
组合优于继承
针对接口编程优于针对实现编程
Example:
下面就是一个策略模式的一个特例,比较行为是变化的,每个调用者可以有不同的比较方法,将比较行为封装进Comparator,使用时实现自己的Comparator行为对象再组合传递进来。
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});
网友评论