解答
1.策略接口类: 是对策略, 算法的抽象. 定义了每个策略和算法必须有的算法和属性.
2.策略实现类: 策略,算法的具体实现. 策略具体有几种类型的实现就定义几个策略类,并实现策略方法
3.Context上下文类: Context上下文, 起到承上启下的作用. 屏蔽了上层模块对策略,算法的访问, 封装了可能存在的变化.
到底当前要调用那个策略, 通过定义构造函数传参决定, 策略方法可以没有入参, 但必须有构造方法, 构造方法决定类的实际策略. 可扩展性强, 增加新的策略, 不需要动用老代码.
4.客户端类: 客户端调用Context上下文类, 并指定要调用策略的类. 所以, 就要求用户提前知道有哪些策略类.
帖子还没人回复快来抢沙发