`
wangzt_2008
  • 浏览: 46645 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android涉及到的设计模式(转载)

阅读更多

转自 http://blog.csdn.net/dengshengjin2234/article/details/8502097

 

1、适配器模式:ListView或GridView的Adapter

简介:不同的数据提供者使用一个适配器来向一个相同的客户提供服务。

 

2、建造者模式:AlertDialog.Builder

简介:可以分步地构造每一部分。

 

3、命令模式:Handler.post后Handler.handleMessage

简介:把请求封装成一个对象发送出去,方便定制、排队、取消。

 

4、享元模式:Message.obtainMessage通过重用Message对象来避免大量的Message对象被频繁的创建和销毁。

简介:运用共享技术有效地支持大量细粒度的对象。

 

5、迭代器模式:如通过Hashtable.elements方法可以得到一个Enumeration,然后通过这个Enumeration访问Hashtable中的数据,而不用关心Hashtable中的数据存放方式。

简介:提供一个方法顺序访问数据集合中的所有数据而又不暴露对象的内部表示。

 

6、备忘录模式:Activity的onSaveInstanceState和onRestoreInstanceState就是通过Bundle这种序列化的数据结构来存储Activity的状态,至于其中存储的数据结构,这两个方法不用关心

简介:不需要了解对象的内部结构的情况下备份对象的状态,方便以后恢复。

 

7、观察者模式:我们可以通过BaseAdapter.registerDataSetObserver和BaseAdapter.unregisterDataSetObserver两方法来向BaseAdater注册、注销一个DataSetObserver。这个过程中,DataSetObserver就是一个观察者,它一旦发现BaseAdapter内部数据有变量,就会通过回调方法DataSetObserver.onChanged和DataSetObserver.onInvalidated来通知DataSetObserver的实现类。事件通知也是观察者模式

简介:一个对象发生改变时,所有信赖于它的对象自动做相应改变。

 

8、原型模式:比如我们需要一张Bitmap的几种不同格式:ARGB_8888、RGB_565、ARGB_4444、ALAPHA_8等。那我们就可以先创建一个ARGB_8888的Bitmap作为原型,在它的基础上,通过调用Bitmap.copy(Config)来创建出其它几种格式的Bitmap。另外一个例子就是Java中所有对象都有的一个名字叫clone的方法,已经原型模式的代名词了

简介:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。

 

9、代理模式:类似于ios开发的delegate委托模式,所有的AIDL都一个代理模式的例子。假设一个Activity A去绑定一个Service S,那么A调用S中的每一个方法其实都是通过系统的Binder机制的中转,然后调用S中的对应方法来做到的。Binder机制就起到了代理的作用。

简介:为其他对象提供一种代理以控制对这个对象的访问。

 

10、状态模式:View.onVisibilityChanged方法,就是提供了一个状态模式的实现,允许在View的visibility发生改变时,引发执行onVisibilityChanged方法中的动作。

简介:状态发生改变时,行为改变。

 

11、策略模式:

举例:Java.util.List就是定义了一个增(add)、删(remove)、改(set)、查(indexOf)策略,至于实现这个策略的ArrayList、LinkedList等类,只是在具体实现时采用了不同的算法。但因为它们策略一样,不考虑速度的情况下,使用时完全可以互相替换使用。

简介:定义了一系列封装了算法、行为的对象,他们可以相互替换。

 

12、调解者模式

简介:一个对象的某个操作需要调用N个对象的M个方法来完成时,把这些调用过程封装起来,就成了一个调解者

举例:如Resource.getDrawable方法的实现逻辑是这样的:创建一个缓存来存放所有已经加载过的,如果getDrawable中传入的id所对应的Drawable以前没有被加载过,那么它就会根据id所对应的资源类型,分别调用XML解析器生成,或者通过读取包中的图片资源文件来创建Drawable。

而Resource.getDrawable把涉及到多个对象、多个逻辑的操作封装成一个方法,就实现了一个调解者的角色。

 

13、抽象工厂模式

DAO与Service的使用

分享到:
评论

相关推荐

    Android源码设计模式解析与实战.pdf

    《Android 源码设计模式解析与实战》不仅分析了Android源代码的设计模式,更结合实例演示了如何使用这些设计模式。看这本书,既能学到如何分析、学习Android源代码,又能提高自己架构设计水平 《Android 源码设计...

    android源码设计模式解析与实战.pdf下载 完整版高清

    本书从Android源码的角度由浅入深地剖析设计模式的运用,让工程师们把设计与模式重视起来,提升自己的设计能力与代码质量。因此本书适合的读者为初、中、高级Android工程师。另外,设计思想都是相通的,其他领域的...

    android 24种设计模式介绍与6大设计原则

    在Android开发中,设计模式和设计原则是提升代码质量、可维护性和可扩展性的重要工具。以下是关于"Android 24种设计模式介绍与6大设计原则"的详细阐述: 一、六大设计原则 1. **单一职责原则(Single ...

    Android源码设计模式解析与实战

    Android源码设计模式解析与实战 Android源码设计模式解析与实战 Android源码设计模式解析与实战 Android源码设计模式解析与实战 Android源码设计模式解析与实战 Android源码设计模式解析与实战 Android源码设计模式...

    Android源码设计模式分析

    通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。

    Android 设计模式

    项目开发中发现问题、解决问题这个过程中有很...如果设计模式在编码设计生涯中用得极少,主要原因是对设计模式的理解还不够,认识不到问题的存在。 因为不能正确的分析问题、认识问题,当然也不可能很好的解决问题了。

    Android源码设计模式解析与实战02

    Android源码设计模式解析与实战

    Android源码设计模式解析与实战 完整版 pdf

    Android源码设计模式解析与实战 完整版 pdf

    Android 日间/夜间模式 主题切换

    ThemeDemo日夜间模式切换,页面切换的时候附带动画特效, 关于多主题实现的,大牛这里的做法是继承AppCompatActivity,置换了AppCompatDelegate中AppCompatViewInflater中的createView 方法.实现了对 xml 控件的控制. ...

    Android白天夜晚模式切换实现

    总之,实现Android应用中的白天夜晚模式切换,主要涉及BroadcastReceiver监听系统时间变化、AppCompatDelegate切换主题模式以及设置界面的用户交互。通过以上步骤,你就可以为自己的应用添加这一实用功能了。

    android studio课程设计作业PPT+设计文档+可运行源代码+设计思路

    至于"移动新媒体技术开发作业",这可能是指项目的一部分或者整个项目背景,强调了该项目与移动设备和新媒体技术的结合,可能涉及到移动设备的特性利用,如定位、传感器数据等,或者在新媒体环境下如何呈现和分享信息...

    Android组件设计思想

    Android应用开发的哲学是把一切...这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对Android系统有一个高层次的抽象理解。

    android设计招式之美(全)

    《Android设计招式之美》是一本深入探讨Android框架设计模式的专业书籍,涵盖了从基础到高级的各种设计技巧。这本书通过对各种设计模式的详细讲解,旨在帮助开发者提升在Android平台上的编程能力,实现更高效、可...

    android开发的手机通讯录(毕业设计,课程设计)

    这个项目涉及到多个Android开发的关键知识点,包括用户界面(UI)设计、SQLite数据库管理、联系人API的使用以及事件处理等。下面将对这些关键点进行深入讲解。 1. **用户界面设计**:在Android中,UI设计主要通过...

    android项目详细设计说明书

    在Android项目开发中,详细设计说明书是至关重要的文档,它为整个项目的开发提供了一套清晰、全面的技术蓝图。这份"android项目详细设计说明书"包含了项目的技术实现细节、模块划分、接口设计、数据结构以及异常处理...

    Android WebView添加夜间模式

    这样,当用户切换到夜间模式时,我们通过调用`toggleDarkMode(true)`强制网页显示暗色样式,反之则恢复默认样式。 在实际应用中,你还可以添加一个开关按钮或者根据系统设置自动切换夜间模式,以提供更好的用户体验...

    android音频通信源码

    在Android源码中,2FSK的实现可能包括频率生成、载波调制、解调等环节,涉及到数字信号处理算法,如滤波器设计、同步检测等。 其次,Android音频通信的核心是音频流的捕获和播放。Android提供了AudioRecord和...

    基于Android手机通讯录的设计与实现

    通讯录应用的设计会涉及到Android的核心组件,如Activity、Intent、Content Provider、Broadcast Receiver和Service等。其中,Content Provider用于管理应用程序的数据,如通讯录数据,而Intent则负责不同组件间的...

    Android MVP模式示例

    在Android开发中,MVP(Model-View-Presenter)模式是一种常见的设计模式,它将业务逻辑、用户界面和数据模型分离,使得代码更加结构化、可测试和易于维护。本示例将深入探讨如何在Android项目中应用MVP模式。 **一...

    Android编程设计模式之迭代器模式详解

    本文实例讲述了Android编程设计模式之迭代器模式。分享给大家供大家参考,具体如下: 一、介绍 迭代器模式(Iterator Pattern)又称为游标(Cursor)模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计...

Global site tag (gtag.js) - Google Analytics