首页 > 解决方案 > 持有人等级制度的阶级等级制度

问题描述

鉴于我有这样的类(例如 android 小部件类)的层次结构: 在此处输入图像描述

我需要为这个类的层次结构创建一个持有者的层次结构,以便每个持有者都可以创建其类的实例并以某种方式将属性应用于该实例以及儿童持有者的实例。

我当前的结构只允许层次结构的两层:

class MyViewBase {
    protected void applyProperties(View view)
        // Apply View's params
    }
}

class MyTextView extends MyViewBase {
    private TextView textView;
    public MyTextView(Context context){
        textView = new TextView();
        // Apply TextView specific params
        applyParams(textView);
    }
}

// I cannot extend MyTextView since I 
// would get both a Button and a TextView instantinated
class MyButton extends MyViewBase { 
    private TextView textView;
    public MyTextView(Context context){
        textView = new TextView();
        // Apply TextView and Button specific params
        applyParams(textView);
    }
}

使用像下面这样的静态方法不是一种选择,因为在某些情况下我需要上下文

protected static void applyTextViewProperties(TextView view){
    // Some code here
}

标签: javaclassoopdesign-patternshierarchy

解决方案


推荐阅读