解耦小技巧 - 接口最基本的使用策略

龟速

Parent -> Child

Activity -> ListItem

listitem 的动作需要依靠场景的某些属性,又需要做到解耦,因此不能让ListItem拥有Activity的对象。

可以这么做。

class ListItem {
    public interface Properties {
        boolean isTouchable();
        String getName();
        boolean isInSky();
    }
    protected Properties mProperties;
    public void setProperties(Properties p) {
        mProperties = p;
    }
    @Click(R.id.fly)
    void fly() {
        if (p != null && p.isInSky()) {
            // do fly business
        }
    }
}

DemoActivity implements ListItem.Properties {
    public boolean isTouchable() {
        return true;
    }
    public getName() {
        return DemoActivity.class.getSimpleName();
    }
    ...
}
阅读 2.7k

Android 开发笔记
记录 Android 开发成长时学习的好文章和经验技巧

我的主页,欢迎来访

213 声望
6 粉丝
0 条评论

我的主页,欢迎来访

213 声望
6 粉丝
文章目录
宣传栏