设计模式学习之策略模式

Strategy Pattern

策略模式指的是完成某些相同动作或相同模块的不同方式。比如我想玩游戏,可以有手柄操作,可以有键盘操作,甚至是语音操作等。不管你用什么方式,对游戏来说,只是一种操作方式,只要我接受到你的输入要求就好。这就是策略模式。

/**

* @description: 公有的接口 代表具有某种能力(比如game的操作方式)

* @author: dai

* @create date: 2018/3/28

*/

public interface IStrategy {

    void operate();

}


public class rein implements IStrategy {

    @Override

    public void operate() {

        System.out.println("我玩游戏喜欢用手柄操作.");

}

}

public class Keybord implements IStrategy {

@Override public void operate() {

// System.out.println("我玩游戏喜欢用键盘");

}

}

public class Speech implements IStrategy {

@Override public void operate() {

System.out.println("我就比较牛逼了,我喜欢用语音操作。");

}

}

/**

* @description: 承载这种能力的载体。(这里键盘的插口,语音入口等设为同一入口) 

*/

public class GameOperate {

private IStrategy mIStrategy;

public GameOperate(IStrategy IStrategy) {

mIStrategy = IStrategy;

}

/** * 通过接口调用具体实现的方式 */

public void operate(){

mIStrategy.operate();

}

}

你可能感兴趣的:(设计模式学习之策略模式)