最近在继续iPhone业务的同时还需要重新拾起Android。在有些生疏的情况下,决定从Android源码中感悟一些Android的风格和方式。在学习源码的过程中也发现了一些通用的模式,希望通过一个系列的文章总结和分享下。    模板模式定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。Android中的Activity、View等等都利用了模板模式。以AdapterView为例,所实现的模板模式的类图如下:Android和设计模式:模板模式_第1张图片其中AdapterView通过getAdapter()、setAdapter(T adapter)、addView(View child)和onLayout()等方法将一部分具体逻辑延迟到各个子类实现。代码如下:public abstract class AdapterView extends ViewGroup {
    ......
    public abstract T getAdapter();
    public abstract void setAdapter(T adapter);
    @Override
    public void addView(View child) {
        throw new UnsupportedOperationException("addView(View) is not supported in AdapterView");
    }
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        mLayoutHeight = getHeight();
    }
    ......
}

更多相关文章

  1. Android和设计模式:建造者模式
  2. Android 闹钟源码
  3. 如何开始使用Android应用程序模板
  4. 编译cubieboard android 源码过程详解之(六):pack
  5. Android中使用Gallery_tabhost来实现标签效果图源码
  6. Android中启动动画源码讲解
  7. Android 源码 修改系统默认横屏
  8. 45个android实例源码
  9. 全志A64 Android7.1屏蔽使用按键进入安全模式的方法

随机推荐

  1. 双插槽与单插槽内存模型?
  2. Linux socket通信——并发服务器(fork)
  3. ubuntu下的Samba配置:使每个用户可以用自
  4. linux c (4) 进程终止-exit和_exit函数
  5. linux上/proc/cpuinfo中的bug是什么意思?
  6. 导出内存(linux中)
  7. 詹金斯死了,但是pid文件存在
  8. Linux BT下载(3)-与Tracker交互
  9. 【linux】下的mkfifo 命令 和【C语言】中
  10. Linux下的文件时间