`
yehoubin
  • 浏览: 23507 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android设计模式系列-组合模式

 
阅读更多

Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有的widget和布局类都依靠这两个类。
组合模式,Composite Pattern,是一个非常巧妙的模式。几乎所有的面向对象系统都应用到了组合模式。

1.意图
将对象View和ViewGroup组合成树形结构以表示"部分-整体"的层次结构(View可以做为ViewGroup的一部分)。
组合模式使得用户对单个对象View和组合对象ViewGroup的使用具有一致性。
热点词汇: 部分-整体 容器-内容 树形结构 一致性 叶子 合成 安全性 透明性

2.结构

针对View和ViewGroup的实际情况,我们选择安全式的组合模式(在组合对象中添加add,remove,getChild方法),添加少许的注释,我们把上图修改为:

3.代码
View类的实现:

  1. public class View{ 
  2.  
  3.         //... ... 
  4.  
  5.        //省略了无关的方法 
  6.  

ViewGroup的实现:

  1. public abstract class ViewGroup extends View{ 
  2.  
  3.     /** 
  4.    * Adds a child view.  
  5.  
  6.     */ 
  7.  
  8.    public void addView(View child) { 
  9.  
  10.        //... 
  11.  
  12.     } 
  13.  
  14.  
  15.  
  16.    public void removeView(View view) { 
  17.  
  18.         //... 
  19.  
  20.     } 
  21.  
  22.  
  23.  
  24.    /** 
  25.  
  26.      * Returns the view at the specified position in the group. 
  27.  
  28.     */ 
  29.  
  30.     public View getChildAt(int index) { 
  31.  
  32.        try { 
  33.  
  34.            return mChildren[index]; 
  35.  
  36.       } catch (IndexOutOfBoundsException ex) { 
  37.  
  38.            return null; 
  39.  
  40.       } 
  41.  
  42.    } 
  43.  
  44.  
  45.  
  46.     //other methods 
  47.  

4.效果
(1).结构型模式
(2).定义了包含基本对象和组合对象的类层次结构。这种结构能够灵活控制基本对象与组合对象的使用。
(3).简化客户代码。基本对象和组合对象有一致性,用户不用区分它们。
(4).使得更容易添加新类型的组件。
(5).使你的设计变得更加一般化。

出自http://mobile.51cto.com/ahot-418970.htm

 

分享到:
评论

相关推荐

    Android设计模式(详细讲解了10个Android设计模式)

    详细讲解了组合模式、观察者模式、单例模式、模板方法模式、备忘录模式、享元模式、命令模式、工厂方法模式、适配器模式 原型模式等10个Android设计模式,和CSDN上其他讲Android设计模式的文章完全不同。讲解详细,...

    Android设计模式系列之组合模式

    Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有的widget和布局类都依靠这两个类。 组合模式,Composite Pattern,是一个非常巧妙的模式。几乎...

    Android源码设计模式解析与实战

    本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    自定义控件 - 设计模式 - 良好设计 - ViewPager

    自定义控件 大量 使用 设计模式原则:组合、委托

    Android源码设计模式解析与实战PDF

    本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    Android 源码设计模式解析与实战

    本书专门介绍Android源代码的设计模式,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。本书的主要内容为:优化代码的第一步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    《Android 源码设计模式解析与实战》

    本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    DesignPattern:23种设计模式,Android原始设计模式分析-android

    设计模式系列23种设计模式设计模式是一套被反复使用,多数人知道的,经过分类编目的,代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。本文将介绍23种设计模式。创建型...

    何红辉关爱民-Android源码设计模式解析与实战(带书签第2版).pdf

    本书专门介绍Android源代码的设计模式,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。本书的主要内容为:优化代码的第 一步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    何红辉关爱民-Android源码设计模式解析与实战(带书签高清第2版).pdf

    本书专门介绍Android源代码的设计模式,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。本书的主要内容为:优化代码的第一步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--Menu之不同模式下显示不同菜单 |--openGL-ES上绘制文字 |--openGL-ES纹理贴图 |--openGL-ES获取帧率 |--openGL-ES雾化 |--PopupWindow的使用 |--PopupWindow的返回健关闭 |--RadioGroup的用法(里面的成员可以是...

    IOS设计模式之组合设计模式

    Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有的widget和布局类都依靠这两个类。 组合模式,Composite Pattern,是一个非常巧妙的模式。几乎...

    Android开发三剑客_part1

    状态图 活动图 对上述9种Diagram细致的学习 可使读者在分析 设计 开发Android程序时如虎添翼 游刃有余 中篇结合中国的历史文化和现代人的生活 采用轻松愉快的写作风格讲解Android中六大设计原则和基本的设计模式 ...

    台湾高焕堂Android讲义

    7.Android里的类别继承及对象组合.doc 8.如何从DDMS发出简(短)讯给应用程序.doc 10.布局(Layout)在Android软件开发上的重要角色.doc 11.Android的类别继承与委托之范例.doc 12.认识Android的UID(Unix user ID)与权限...

    飞翔的小鸟java源码-DesignPatternsExperiment:此存储库用于带有Android示例的设计模式

    飞翔的小鸟java源码设计模式实验 此存储库用于带有 Android 示例的设计模式。 表中的内容: [创作](#OBSERVER 设计模式) 策略设计模式: 学习来源: 讨论: 尖端: 如果不属于任何子类,开发人员不应向超类添加任何...

    一个公司上千元的Android培训资料.part2

    android 开发模式 Android SDK 2.3与Eclipse最新版开发环境搭建 android 开发入门与实践 android 驱动开发入门 android 平台移植与底层开发 Android UI设计技巧 Android 终端开发 Android+ARM 组合及前景分析...

    一个公司上千元的Android培训资料.part1

    android 开发模式 Android SDK 2.3与Eclipse最新版开发环境搭建 android 开发入门与实践 android 驱动开发入门 android 平台移植与底层开发 Android UI设计技巧 Android 终端开发 Android+ARM 组合及前景分析...

Global site tag (gtag.js) - Google Analytics