盘点android中常见的设计模式(七) -- 组合模式

简介:

迪米特法则/最少知道原则(Demeter Principle):

一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

合成复用原则(Composite Reuse Principle):

尽量使用合成/聚合的方式,而不是使用继承。

 

组合模式:

组合模式是用于把一组相似的对象当作一个单一的对象,它所依据的是树形结构来组合对象,从而来表示部分与整体之间的层次关系,类似于组织机构。这种设计模式是一种结构型模式。

这种模式最大的特点就是每一个对象既可以表示为一个单一的对象,也可以是一组相似对象的整体。组合模式中的对象都持有一个集合用来存放一组同组织对象,也可以被存放在其他对象的集合中。

 

Android中的使用:

说到组织模式在android中的使用,看到前面关于这种模式的介绍,相信大家也都能联想到一些。最常见的就属ViewGroup了。FrameLayout、LinearLayout等基本布局都继承自ViewGroup,而ViewGroup又继承自View。在View中又存在集合可以存放其他的View控件。因此一个View本身即可以是一个单一的对象(构成组织中的一部分),也可以是一个容器(用来存放其他控件)。

@RemoteView
public class LinearLayout extends ViewGroup {

    ......

}



public abstract class ViewGroup extends View implements ViewParent, ViewManager {

    ......

}



public class View implements Callback, android.view.KeyEvent.Callback, AccessibilityEventSource{

    ......

}

​​​​        再比如一些办公软件(是的,我说的就是最近狂刷存在感的钉钉~),一般都会有一个公司的组织架构,那也是一种常见的组织模式。总经理管理各个部门经理,各部门经理又管辖各个项目组组长,各项目组组长再管理本组组员。

 

 

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