设计模式在安卓中的体现 。
代理模式:
都会调用到ActivityManagerNative类的getDefault()方法,而该方法会获得一个共用的单例的IActivityManager引用,
然后通过多态来调用代理中的实现。一
它的所有依赖者都会收到通知并自动更新还会遇到一对一、或者多对一的情况。一对一就是,一个目标对应一个观察者。多对一是指多个目标对应一个观察者。
装饰模式,在不通过改变原来类接口的方法,是通过新增类对目标对象施加新增特性新方法的一种设计思想;
代理模式:
创建代理类,就是为其他对象提供一种访问代理,
常用的类ActivityManager,,
它相当于代理模式的类图中的client。在这个类中,可以看到大量的getxxx函数,这些函数,都会调用到ActivityManagerNative类的getDefault()方法,而该方法会获得一个共用的单例的IActivityManager引用,
然后通过多态来调用代理中的实现。一
工厂模式:用工厂方法来代替new对象实例,比如:
bitmapfactory由此工厂来决定按照什么方法来创建BITMAP 实例 ,
asyncTask内部线程由ThreadFactory创建
模板模式:创建一个模板类,实例而是由继承他的类来实现。
比如:fragment:activity:asyncTack创建好了一个模板 咱们只要继承他来创建实例
单例模式:只要遵循这个类的实例是唯一的:比如APPlication,图片加载类,一些工具类,工具类一般都是单例。
适配器模式: baseadapter
它的所有依赖者都会收到通知并自动更新还会遇到一对一、或者多对一的情况。一对一就是,一个目标对应一个观察者。多对一是指多个目标对应一个观察者。
经典的使用到观察者模式的就是Android控件的事件监听模型。 实现listner接口触发点击 所有观察者都接受到事件只是看你处理不处理,
使用的 安卓广播一对多,发送广播所有接受者都能接受。再利用Action来判断接受的实际广播接受者;
装饰模式,在不通过改变原来类接口的方法,是通过新增类对目标对象施加新增特性新方法的一种设计思想;
创建一个装饰类 内部调用被装饰类来进行装饰.缺点违反面向对象编程,会加入很多小类
比如事件处理中 requestDisallowInterceptTouchEvent 要求父控件拦截事件传递。通过得到parent然后对本控件特性修改