部分JAVA设计模式在Android中的体现。
2016-03-08 08:10
295 查看
设计模式在安卓中的体现 。
代理模式:
创建代理类,就是为其他对象提供一种访问代理,
常用的类ActivityManager,,
它相当于代理模式的类图中的client。在这个类中,可以看到大量的getxxx函数,这些函数,
都会调用到ActivityManagerNative类的getDefault()方法,而该方法会获得一个共用的单例的IActivityManager引用,
然后通过多态来调用代理中的实现。一
工厂模式:用工厂方法来代替new对象实例,比如:
bitmapfactory由此工厂来决定按照什么方法来创建BITMAP 实例 ,
asyncTask内部线程由ThreadFactory创建
模板模式:创建一个模板类,实例而是由继承他的类来实现。
比如:fragment:activity:asyncTack创建好了一个模板 咱们只要继承他来创建实例
单例模式:只要遵循这个类的实例是唯一的:比如APPlication,图片加载类,一些工具类,工具类一般都是单例。
适配器模式: baseadapter
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,
它的所有依赖者都会收到通知并自动更新还会遇到一对一、或者多对一的情况。一对一就是,一个目标对应一个观察者。多对一是指多个目标对应一个观察者。
经典的使用到观察者模式的就是Android控件的事件监听模型。 实现listner接口触发点击 所有观察者都接受到事件只是看你处理不处理,
使用的 安卓广播一对多,发送广播所有接受者都能接受。再利用Action来判断接受的实际广播接受者;
装饰模式,在不通过改变原来类接口的方法,是通过新增类对目标对象施加新增特性新方法的一种设计思想;
创建一个装饰类 内部调用被装饰类来进行装饰.缺点违反面向对象编程,会加入很多小类
比如事件处理中
requestDisallowInterceptTouchEvent 要求父控件拦截事件传递。通过得到parent然后对本控件特性修改
代理模式:
创建代理类,就是为其他对象提供一种访问代理,
常用的类ActivityManager,,
它相当于代理模式的类图中的client。在这个类中,可以看到大量的getxxx函数,这些函数,
都会调用到ActivityManagerNative类的getDefault()方法,而该方法会获得一个共用的单例的IActivityManager引用,
然后通过多态来调用代理中的实现。一
工厂模式:用工厂方法来代替new对象实例,比如:
bitmapfactory由此工厂来决定按照什么方法来创建BITMAP 实例 ,
asyncTask内部线程由ThreadFactory创建
模板模式:创建一个模板类,实例而是由继承他的类来实现。
比如:fragment:activity:asyncTack创建好了一个模板 咱们只要继承他来创建实例
单例模式:只要遵循这个类的实例是唯一的:比如APPlication,图片加载类,一些工具类,工具类一般都是单例。
适配器模式: baseadapter
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,
它的所有依赖者都会收到通知并自动更新还会遇到一对一、或者多对一的情况。一对一就是,一个目标对应一个观察者。多对一是指多个目标对应一个观察者。
经典的使用到观察者模式的就是Android控件的事件监听模型。 实现listner接口触发点击 所有观察者都接受到事件只是看你处理不处理,
使用的 安卓广播一对多,发送广播所有接受者都能接受。再利用Action来判断接受的实际广播接受者;
装饰模式,在不通过改变原来类接口的方法,是通过新增类对目标对象施加新增特性新方法的一种设计思想;
创建一个装饰类 内部调用被装饰类来进行装饰.缺点违反面向对象编程,会加入很多小类
比如事件处理中
requestDisallowInterceptTouchEvent 要求父控件拦截事件传递。通过得到parent然后对本控件特性修改
相关文章推荐
- Android basic1
- Android basic1
- Android basic1
- Android basic1
- 【Android】19.3 ContentProvider及安卓进一步封装后的相关类
- Android BaseAnimation近200种动画效果源码
- 《Android源码设计模式》读书笔记 (20) 第20章 适配器模式
- android_activity的生命周期和启动模式
- Android应用开发基础之十一:新特性
- Android Sqlite查询优化之一---运用索引
- Android应用开发基础之十:多媒体编程
- Android应用开发基础之九:内容提供者(ContentProvider)
- Android项目实战--【谁是歌手-布局篇】
- android_activity之startActivityForResult的使用
- android 一条线
- Android下用Sqlite数据库存储数据
- Android应用开发基础之六:页面跳转和数据传递
- android 获取时间
- Android学习05——Intent
- 编写Android工程里测试代码的步骤