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

Parent -> Childcode

Activity -> ListItem对象

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

能够这么作。it

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();
    }
    ...
}
相关文章
相关标签/搜索