Java设计模式之策略模式

今天开始学习下设计模式,参考教材是电子书《Java设计模式》。
策略模式:
引用下维基百科上的图,


通过Context,对Strategy接口不同的实现操作。
代码:
IStrategy.java:


package com.pocketdigi.patterns.strategy;
/**
 * 策略模式 接口
 * 每种策略实现该接口
 */
public interface IStrategy {
    public void operate();
}

StrategyA.java


package com.pocketdigi.patterns.strategy;
/**
 * 一个实现
 */
public class StrategyA implements IStrategy {

    @Override
    public void operate() {
        // TODO Auto-generated method stub
        System.out.println("策略A实现");
    }
}

StrategyB.java


package com.pocketdigi.patterns.strategy;

/**
 * 另一个实现
 */
public class StrategyB implements IStrategy {

    @Override
    public void operate() {
        // TODO Auto-generated method stub
        System.out.println("策略B实现");
    }
}

StrategyContext.java


package com.pocketdigi.patterns.strategy;
/**
 * 用于存放,操作策略
 */
public class StrategyContext {
    private IStrategy strategy;
    public StrategyContext(IStrategy strategy)
    {
        this.strategy=strategy;
    }
    public void operate()
    {
        strategy.operate();
    }
}

Main.java:


package com.pocketdigi.patterns;

import com.pocketdigi.patterns.strategy.StrategyA;
import com.pocketdigi.patterns.strategy.StrategyB;
import com.pocketdigi.patterns.strategy.StrategyContext;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        StrategyContext context=new StrategyContext(new StrategyA());
        context.operate();
        
        context=new StrategyContext(new StrategyB());
        context.operate();
    }

}

优点:体现高内聚低耦合的特性,方便扩展,以后有更多的其实只需要添加相应类

© 2014, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注