安卓系列之设计模式:策略模式

127 阅读1分钟

定义

一个类的行为可以有多种情况,可互相替换,属于行为型模式。

应用场景

1.有多个类似的类,但是他们的区别只是行为不一样
2.类内有大量的条件运算符,并且在同一算法的不同变体之间切换

优点

1.拓展性好
2.行为可以随意切换

缺点

1.策略类会增多

具体实例

1.RecyclerView选择布局方式

具体实现

行为接口

package com.elaine.testpattern.strategy;

/**
 * 接口
 * 表示能做一些事情
 * <p>
 * author: elaine
 * date: 2021/4/22
 */
public interface Play {
    public void doSomething();
}

行为实现类

跳舞行为

package com.elaine.testpattern.strategy;

import android.util.Log;

/**
 * 继承Play接口
 * 表示他能跳舞
 * <p>
 * author: elaine
 * date: 2021/4/22
 */
public class Draw implements Play {
    @Override
    public void doSomething() {
        Log.e("people====""can draw.");
    }
}

打球

package com.elaine.testpattern.strategy;

import android.util.Log;

/**
 * 继承Play接口
 * 表示他能打球
 *
 * author: elaine
 * date: 2021/4/22
 */
public class PlayBall implements Play {

    @Override
    public void doSomething() {
        Log.e("people====""can play boll.");
    }
}

人物类

package com.elaine.testpattern.strategy;

/**
 * 定义一个人
 *
 * author: elaine
 * date: 2021/4/22
 */
public class People {
    private Play play;

    public People(Play play) {
        this.play = play;
    }

    public void play(){
        play.doSomething();
    }
}

运行代码

private void use() {
    People people = new People(new Draw());
    people.play();

    people = new People(new PlayBall());
    people.play();
}

运行结果

图片

若帅哥美女对该系列文章感兴趣,可微信搜索公众号(木子闲集)关注更多更新文章哦,谢谢~