Strategy?Pattern
策略模式指的是完成某些相同動(dòng)作或相同模塊的不同方式。比如我想玩游戲,可以有手柄操作,可以有鍵盤操作,甚至是語音操作等。不管你用什么方式,對(duì)游戲來說,只是一種操作方式,只要我接受到你的輸入要求就好。這就是策略模式。
/**
* @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: 承載這種能力的載體。(這里鍵盤的插口,語音入口等設(shè)為同一入口)?
*/
public class GameOperate {
private IStrategy mIStrategy;
public GameOperate(IStrategy IStrategy) {
mIStrategy = IStrategy;
}
/** * 通過接口調(diào)用具體實(shí)現(xiàn)的方式 */
public void operate(){
mIStrategy.operate();
}
}