Android系统使用Java语言进行开发,Android源码中设计模式的使用无处不在,以至于日常的开发中,也会根据不同的情况直接套用相应的设计模式。阅读Android源码的一大乐趣就是可以学习到Google大牛对设计模式的灵活运用。下面就来看一下Android系统都用了哪些常用的设计模式。
模板方法模式
这应该是我们在Android开发中接触的比较早的设计模式。新建一个Actiivty时都会覆盖onCreate、onResume等生命周期方法,这些方法是在父类中定义好的模板,会由系统自动回调,我们可以通过重写来替换掉这些方法,却无法改变他们的调用顺序。这是典型的模板方法模式。
我们在定义某些类时,常常会在父类中定义一个流程,然后在子类中去重写这个流程中的一些方法,这也是使用了模板方法模式。
单例模式
Android中最常见的单例是Application类,它全局只有一个。不过Application的构造函数并非是私有的,也就是说我们可以new一个新的Application对象,因此Application这个类并不符合单例的规范。但是,即使我们重新new出来一个Application,它并没有绑定相关的上下文,也会是无效的,也就保证了全局只有一个有效的Application对象。
Android还有其他典型的单例的例子。比如InputMethodManager的构造函数为private的,然后定义了静态的getInstance方法来提供单例对象,这是标准的单例模式的定义方式。