版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
定义:将对象组合成树结构以表示 部分-整体 的层次结构
组合模式使客户端对单个对象和组合对象保持一致的处理方式
在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);
}