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

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也架构之三:简单工厂模式优化网络请求

    让我们冲现在开始吧,上一篇文章《Android也架构之二:单例模式访问网络》中,我们学会用了单例模式,单例模式一般解决的是和程序相关的问题,和业务逻辑无关,今天开始,我们就开始学习和业务相关的设计模式,拥抱...

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

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

    细说Android4.0NDK编程.pdf

    详细剖析了NDK开发中涉及的各类问题和解决方案:搭建Android NDK开发环境的每一步细节,开发第一个Android NDK程序,Android NDK中Java与C/C++代码的互相调用,Facade设计模式在NDK中的美妙应用,NDK与软/硬件整合,...

    基于安卓Android的网上订餐系统毕业设计

    涉及模式:无线点餐系统主要用到的采用模型-视图-控制器MVC架构的设计模式。MVC架构是"Model-View-Controller",中文意思是"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。 开发工具及环境:Eclipse环境

    Android Studio实现一个校园图书管理系统,满分课设!

    第一个较大的Android项目,基于Android平台的图书管理系统 涉及到的功能有学生注册、工作人员注册、图书馆介绍、图书馆新闻、学生、工作人员登录、 书籍搜索、学生借还书、工作人员添加书籍、新书榜单、借书排行榜、...

    android系统原理及开发要点详解

     第12章“Android的传感器系统”,传感器系统涉及Android的各个层次,具有完整的结构,相比其他系统,传感器系统的各个层次都比较简单。  第6~12章分模块介绍Android的几个核心系统,主要是本地框架和Java框架...

    Android开发案例驱动教程 配套代码

    采用案例驱动模式展开讲解知识点,即介绍案例->案例涉及技术->展开知识点->总结的方式 本书作者从事多年一线开发和培训,讲解知识点力求细致,深入浅出 目 录 前言 第1章 Android操作系统概述 1 1.1 Android...

    新版Android开发教程.rar

    Android Android Android Android 盈利模式 Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成用于系统维护。难点在于位置营销。 设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者...

    基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android 、A8、Linux、驱动、NDK)

    掌握Android从应用开发,到系统移植,再到设备驱动开发的全套技术,无疑会极大的提升自己的职业竞争力和薪酬谢水平 ,本课程深入浅出,手敲全部实战项目代码,经历软硬件结合的嵌入式项目开发全部过程,而且课程中不...

    Android项目中国象棋源码.rar

    同时,源码中的设计模式和算法实现也具有很好的参考价值。 此外,项目还支持多种定制功能,如界面风格切换、难度选择等,可根据您的需求进行修改和扩展。适合广大Android开发者、游戏爱好者以及学习者参考使用。 ...

    Android智能聊天机器人

    基于图灵api完成Android的机器人聊天软件。不是单纯的内置聊天信息,机器人会根据你输入的信息,智能...UI模仿QQ聊天气泡对话模式。代码简单清晰(附注释),涉及到的技术有异步通信、数据封装、json解析、布局实现。

    基于Android+JAVAEE架构的校园信息交互系统

    本文针对一个基于Android+JAVAEE架构的校园信息交互系统的设计与开 发工作进行论述与说明。首先,简单的介绍校园信息交互系统相关的研究背景, 包括涉及的开发平台及技术规范;其次,分析说明了整个系统的设计与架构...

    ARM Cortex-A8和Android 4.x联动报警系统

    掌握Android从应用开发,到系统移植,再到设备驱动开发的全套技术,无疑会极大的提升自己的职业竞争力和薪酬谢水平 ,本课程深入浅出,手敲全部实战项目代码,经历软硬件结合的嵌入式项目开发全部过程,而且课程中不...

    智能移动终端应用开发设计报告Android-贪吃蛇.doc

    在这个游戏的设计 中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还 要应用类的继承机制以及一些设计模式。因此,在设计开发过程中,需要处理好各个类 之间间的逻辑依赖关系和数据...

    基于ARM与Android的互联网智能家居系统的设计与实现,优秀毕业设计!

    1、android客户端应用开发技术(应用客户端app + 遥控器客户端app) 2、MVC框架(抽象工厂 + 观察者模式) + SSH / Django 3、网络通信(WebSocket + WebRTC + Webservice) 4、服务器推送技术(JPUSH) 5、ARM涉及...

    Android跨进程通信demo

    压缩包共包含8个工程,涉及ipc通信,java设计模式,service通信。有需要的朋友可以下载学习。

    高焕堂Android系列资源

    Android应用框架原理与程序开发_高焕堂(简中版).pdf 高焕堂设计招式之美(6个pdf文档) ...总之,涉及内容挺多的,包括框架、底层、模式。和android有关系。 想跟高焕堂学习的别吝啬分数了,资源多,分数当然贵喽

    从Android界面开发谈起

    全文可能会涉及到java、android开发、android源码研究、设计模式等各方面的初级知识,属于典型的杂侃天下,深入研究还需要各位和我一起给力、加油了!好了,废话少说,开动!第一个问题,android界面开发涉及到了...

    基于Java设计的Android 计算器 编写一个 Java 应用的基本架构,**先编写好接口,再设计界面**

    考虑到计算器的美观和易用性,我决定把计算器做在 Android 端,Android 系统的 App 的底层功能由 Java 实现,所以工作主要分为两部分: 1. **设计计算器界面 (activity_main.xml)** 计算器界面用xml文件编写,包括...

    Android代码-ComponentDemo

    这样的设计在各个功能相互直接比较独立的情况下是比较合理的,但是当多个模块中涉及到相同功能时代码的耦合又会增加。 例如首页模块和直播间模块中都可能涉及到了视频播放的功能,这时候不管将播放控制的代码放到...

Global site tag (gtag.js) - Google Analytics