java 组合设计模式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/coderinchina/article/details/96585627

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

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

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

下面就看看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);
}

猜你喜欢

转载自blog.csdn.net/coderinchina/article/details/96585627