设计模式在Android中的应用

来源:互联网 发布:怎样设计淘宝店铺logo 编辑:程序博客网 时间:2024/05/12 12:30

详情:http://www.cnblogs.com/qianxudetianxia/tag/Android设计模式系列/


一直不清楚在Android中使用了哪些设计模式,今天看到了一位大神的博客,受益匪浅,特此记录!


组合模式

将对象View和ViewGroup组合成树形结构以表示"部分-整体"的层次结构(View可以做为ViewGroup的一部分)。组合模式使得用户对单个对象View和组合对象ViewGroup的使用具有一致性。


举例:平时用的那些布局类如LinearLayout等能够addView(),removeView()等,但是又和View处理起来没有什么差别,这就是它的效果!


观察者模式

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


举例:Android中的广播


单例模式

单例模式个人认为是最简单的一种设计模式,但是得考虑并发控制,在多线程的情况下!


举例:android中有很多系统级别的全局变量,如时间,输入法,账户,状态栏等等,android中对这些都直接或者有些间接用到了单例模式。一般我们一个Android工程的Application也经常使用单例来获取独一无二的实例!


模板方法模式

也是一种比较简单的设计模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。


举例:View和TextView,TextView重写了父类的onDraw,当在View类的draw方法中调用onDraw的时候,实际上调用的是TextView的onDraw方法,也就是父类调用子类的方法!如果我们自定义View的话,我们一般也是重写onDraw方法即可!模板方法使用继承来改变算法的一部分



策略模式

定义一系列的算法,把它们一个个封装起来,并且使它们可互相替换。策略模式使得算法可独立于使用它的客户而变化。

举例:Animation不同动画的实现,主要是依靠Interpolator的不同实现而变,就是需要我们把各个Interpolator以父类或者接口的形式注入进去。策略模式其实就是多态的一个淋漓精致的体现。客户可以对实现进行选择,但是客户必须要了解这个不同策略的实现(这句话好像是废话,总而言之,客户需要学习成本)


适配器模式

对于android开发者来说起,适配器模式简直太熟悉不过,有很多应用可以说是天天在直接或者间接的用到适配器模式,比如ListView。适配器模式,把一个类的接口变换成客户端所期待的另一种接口,从而使原本不匹配而无法在一起工作的两个,类能够在一起工作。


举例:你想创建一个可以复用的类,该类可以和其他不相关的类或不可预见的类协同工作,这就是我们android开发者经常碰到的情况:我们常常自定义一个新的Adapter。


以上只是挑了几种设计模式,具体的看之前的链接。



0 0
原创粉丝点击