- 场景如下:三个妙计,一个锦囊(Context),一个赵云(使用者),锦囊中的妙计是小亮给的,赵云是个执行者,从锦囊中取出妙计,执行然后获胜。三个妙计是同一个东西那咱就写个接
- package com.fc.strategy;
- public interface IStrategy {
- public void operate();
- }
- package com.fc.strategy;
- public class First implements IStrategy{
- @Override
- public void operate() {
- System.out.println("这是第一个锦囊");
- }
- }
- package com.fc.strategy;
- public class Seconde implements IStrategy{
- @Override
- public void operate() {
- System.out.println("这是第2个锦囊");
- }
- }
- package com.fc.strategy;
- public class Third implements IStrategy{
- @Override
- public void operate() {
- System.out.println("这是第3个锦囊");
- }
- }
妙计既然有了那我们再来个锦囊来装这些妙计:
- package com.fc.strategy;
- public class MyContext {
- private IStrategy strategy;
- public MyContext(IStrategy strategy) {
- this.strategy = strategy;
- }
- public void opt(){
- this.strategy.operate();
- }
- }
- package com.fc.strategy;
- public class Zhaoyun {
- public static void main(String[] args) {
- MyContext context;
- // 第一个
- context = new MyContext(new First());
- context.opt();
- // 第二个
- context = new MyContext(new Seconde());
- context.opt();
- // 第三个
- context = new MyContext(new Third());
- context.opt();
- }
- }
策略模式体现了高内聚低耦合的特性
转自:http://blog.youkuaiyun.com/fangchao3652/article/details/43226719