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