设计模式--策略模式

来源:互联网 发布:网络综合布线图 编辑:程序博客网 时间:2024/05/18 14:26
/** * Created by zwf on 2017/1/10. * 策略模式 * 问题场景:假设我们遇到一个问题,有几个解决办法,那么我们如何利用这些办法将问题解决呢? * 1.先将这些方法抽象出公共的接口,将方法变成接口的实现类 * 2.定义一个操作类(也就是执行方法的类),利用多态的特性将这些方法的实例作为参数传递给操作类 * 3.解决问题(即执行操作类里面的方法,其实质就是调用实现类的方法) *//** * 测试案列 */class Test{    static void main(String[] args) {        new UseMethrod(new Method1()).use();        new UseMethrod(new Methrod2()).use();        new UseMethrod(new Methrod3()).use();    }}/** * 定义公共的方法接口 */public interface IStrategy {    void operate();}/** * 实现类1 */class Method1 implements IStrategy {    @Override    public void operate() {        Log.d("tag","执行策略1");    }}/** * 实现类2 */class Methrod2 implements IStrategy{    @Override    public void operate() {        Log.d("tag","执行策略2");    }}/** * 实现类3 */class Methrod3 implements IStrategy{    @Override    public void operate() {        Log.d("tag","执行策略3");    }}/** * 执行操作类 */class UseMethrod {    private IStrategy mIStrategy;//多态    public UseMethrod(IStrategy iStrategy) {        this.mIStrategy = iStrategy;    }    public void use() {        mIStrategy.operate();    }}

0 0