0%

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();
    }

}

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