Android 常用设计模式

定义: 设计模式是一套被反复使用、多数人知晓、经过分类的、代码设计经验的总结

目的:为了提高代码可重用性、让代码更容易被他人理解、保证代码可靠性, 使代码编写真正工程化, 是软件工程的基石脉络

一、适配器模式

定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

对象适配器模式和类适配模式对比:

>类适配器采用了继承的方式来实现;而对象适配器是通过传递对象来实现,这是一种组合的方式。
>类适配器由于采用了继承,可以重写父类的方法;对象适配器则不能修改对象本身的方法等。
>适配器通过继承都获得了父类的方法,客户端使用时都会把这些方法暴露出去,增加了一定的使用成本;对     象适配器则不会。
>类适配器只能适配他的父类,这个父类的其他子类都不能适配到;而对象适配器可以适配不同的对象,只要    这个对象的类型是同样的
>类适配器不需要额外的引用;对象适配器需要额外的引用来保存对象

二、建造者模式

定义:即Builder模式,使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式

优点:1、建造者独立,易扩展。 2、便于控制细节风险。

缺点:1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类

三、观察者模式

定义:定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新

button就是具体的主题,也就是被观察者;new出来的View.OnClickListenerd对象就是具体的观察者;OnClickListener实际上就是个接口,也就是抽象观察者;通过setOnClickListener把观察者注册到被观察者中。一旦button捕获的点击事件,即状态发生变化的时候,就会通过回调注册的OnClickListener观察者的onClick方法会来通知观察者,Button状态发生变化。

四、单利模式



面试题:回调函数和观察者模式的区别?

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。观察者模式完美的将观察者和被观察的对象分离开,一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。回调函数其实也算是一种观察者模式的实现方式,回调函数实现的观察者和被观察者往往是一对一的依赖关系。所以最明显的区别是观察者模式是一种设计思路,而回调函数式一种具体的实现方式;另一明显区别是一对多还是多对多的依赖关系方面

你可能感兴趣的:(Android 常用设计模式)