Android开发涉及到的设计模式

1、模板模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤。
eg:如Activity,每次新建一个Actiivty时都会覆盖onCreate,onStart等方法,这些方法在父类中就相当于一个模板

2、观察者模式
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
eg:Listener都相当于一个观察者,对一些事件的响应都进行观察,当发现有响应就进行做相应的处理

3、Application 单例模式
希望对象只创建一个实例,并且提供一个全局的访问点。
结构是简单的,但是却存在一下情况;
1.每次从getInstance()都能返回一个且唯一的一个对象。 2.资源共享情况下,getInstance()必须适应多线程并发访问。 3.提高访问性能。
4.懒加载(Lazy Load),在需要的时候才被构造。

4、适配器模式
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
在 android 中常见的适配器类有: BaseAdapter 、 SimpleAdapter 等 ,首先我们看看 android 应用层是如何使用适配器的:
综合 listview 和 gallery ,发现它们有着类似的实现过程,在 setAdapter 里面获取适配的 item 的个数,然后通知各自的控件构造这些 item ,构造的时候会通过适配器来获取需要适配的 view 。

5、工厂模式
Android中的应用:创建位图
Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_search)
这条语句相信我们经常用到,BitmapFactory顾名思义,就是位图工厂,专门用来将制定的图片转化为指定的位图Bitmap。因为图片来源的不同可能导致图片大小,格式类型等的多种多样,这样就导致了生成目标对象的复杂度,因此通过工厂统一的加工成同样大小,类型的”标准件“,大大简化了代码的复杂度与工作量。如activity 的基类父类等,抽象父类来生成对应的实际子类。

6、代理模式
为其他对象提供一种代理以控制对这个对象的访问
Android系统中利用AIDL定义一种远程服务时就需要用到代理模式。

7、职责链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
Android中的触摸、按键等各种事件的传递

未完待续

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