java 组合设计模式

定义:将对象组合成树结构以表示  部分-整体 的层次结构

组合模式使客户端对单个对象和组合对象保持一致的处理方式

在android中View和View和ViewGroup就是使用了组合模式

java 组合设计模式_第1张图片

下面就看看View和ViewGroup的架构

View是没有addView()添加子view的操作,而ViewGroup是可以添加子view的,

View.java

public class View {
    private Context context;
    public View(Context context) {
        this.context = context;
    }
}

ViewGroup.java

public class ViewGroup extends View implements ViewParent, ViewManager {
    public ViewGroup(Context context) {
        super(context);
    }
    @Override
    public void addView(View view) {

    }

    @Override
    public void updateViewLayout(View view) {

    }

    @Override
    public void removeView(View view) {

    }

    @Override
    public void requestLayout() {

    }
}
ViewParent定义了view的刷新机制,比如requestLayout(),而添加view的行为封装在
public interface ViewManager {
    public void addView(View view);
    public void updateViewLayout(View view);
    public void removeView(View view);
}

 

你可能感兴趣的:(设计模式)