策略模式的原理和应用?
设计模式面试题发布于
一、定义
定义一系列算法,封装成独立策略类,使它们可互换。客户端运行时选择策略,避免大量 if-else。
二、结构
- Strategy:策略接口。
- ConcreteStrategy:具体策略实现。
- Context:持有策略引用,调用策略方法。
三、示例
public interface PayStrategy { void pay(double amount); }
public class Alipay implements PayStrategy { ... }
public class WechatPay implements PayStrategy { ... }
public class PayContext {
private PayStrategy strategy;
public PayContext(PayStrategy strategy) { this.strategy = strategy; }
public void pay(double amount) { strategy.pay(amount); }
}
四、Spring 应用
Spring 的 Resource(资源访问策略)、BeanPostProcessor 都体现了策略模式。