Android设计模式总结
1.复合模式:三层架构、MVC、MVP、MVVM
2.设计模式-单例模式
配置类的使用。
3.设计模式-模板方法
通过抽象类或接口提前定义要实现的方法。
4.设计模式-观察者模式
消息的通知。
5.设计模式-装饰模式:处于安全目的,保护被访问者
对一个已有的接口进行功能扩展。
如,继承父类,并增加扩展新的方法。
6.设计模式-策略模式
MVC中:
控制器是视图的策略。
视图只关心系统中可视的部分,对于任何界面行为,都委托给控制器处理。
控制器负责和模型交互来传递用户请求,对于工作是怎么完成的,视图毫不知情。
7.设计模式-工厂模式(Factory Pattern)、 控制反转(IoC)与依赖注入(DI)
简单工厂、工厂方法、抽象工厂。创建新对象。
8.设计模式-命令模式
支持撤销。
9.设计模式-适配器模式(Adapter)
adpater的使用。
10.设计模式-外观模式
如用一个spManager管理所有的sp对象获得的数据。
11.设计模式-桥接模式
将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。
举例:汽车和公路问题。
12.设计模式-代理模式(委托模式、Proxy Pattern):动态扩充对象功能
传入对象,并调用对应的方法。如接口回调。
13.迭代器模式
Iterator。
14.组合模式(合成模式)
允许将对象组合成树形结构来表现“整体/部分”层次结构。树节点可以对子节点进行增删改查等操作。
View和ViewGroup就是一种很标准的组合模式。
15.状态模式
机器取糖果,允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
16.生成器模式Builder Pattern
如AlertDialog.Builder。
17.责任链模式
经常被使用在窗口系统中,处理鼠标和键盘之类的事件。
18.蝇量模式Flyweight Pattern
19.解释器模式Interpreter Pattern
20.中介者模式Mediator Pattern
21.备忘录模式MementoPattern
当你需要让对象返回之前的状态时(例如:用户请求撤销操作),就使用备忘录模式
22.原型模式Prototype Pattern
23.访问者模式Visitor Pattern
Android设计模式总结的更多相关文章
- Android设计模式系列
http://www.cnblogs.com/qianxudetianxia/category/312863.html Android设计模式系列(12)--SDK源码之生成器模式(建造者模式) 摘要 ...
- Android设计模式(五岁以下儿童)--简单工厂模式
1.面试的时候问这个问题: 在ListView 的item小程序.很多不同的显示风格.或者是,为了更好地维护,不同的样式,应该怎么做? 我一下就想到的是工厂的模式,利用project,编写ViewFa ...
- Android 设计模式之MVC模式
说到Android设计模式的MVC模式,估计很多人都是比较熟悉了,这里深入了解一下MVC到底是怎么回事,以ListView为例子讲解. 一.深入理解MVC概念 MVC即Model-View-Contr ...
- 经常使用的android设计模式
一般来说,经常使用的android设计模式有下面8种:单例.工厂.观察者.代理.命令.适配器.合成.訪问者. 单例模式:目的是为了让系统中仅仅有一个调用对象,缺点是单例使其它程序过分依赖它,并且不 ...
- Android 设计模式一:EIT造型
前言:首先不提造型,我们先来学习公式. 思绪回到于十七世纪中,牛顿提出了简单公式:F=ma:让人们能轻易理解物体运动的复杂<关系>. 再如,于二十世纪初,爱因斯坦发表了简单公式:E=MC平 ...
- Android 设计模式 之 单例模式
http://blog.csdn.net/fangchongbory/article/details/7734199 目录(?)[+] 单例模式常见情景 首先实现1中的单例模式A 实现2中单例模式 ...
- Android 设计模式
简介 项目开发中发现问题.解决问题这个过程中会出现很多问题,比如重复出现.某个问题的遗留,这些问题的本质就是设计模式.今天记录设计模式的知识点. 内容 在java以及其他的面向对象设计模式中,类与类之 ...
- Android设计模式源码解析之桥接模式
模式介绍 模式的定义 将抽象部分与实现部分分离,使它们都可以独立的变化. 模式的使用场景 如果一个系统需要在构件的抽象化角色和具体化角色之间添加更多的灵活性,避免在两个层次之间建立静态的联系. 设计要 ...
- Android设计模式系列--观察者模式
观察者模式,是一种非常常见的设计模式,在很多系统中随处可见,尤其是涉及到数据状态发生变化需要通知的情况下.本文以AbstractCursor为例子,展开分析.观察者模式,Observer Patter ...
- Android设计模式系列--工厂方法模式
工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式.android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具 ...
随机推荐
- FreeSql 新查询功能介绍
FreeSql FreeSql 是一个功能强大的 NETStandard 库,用于对象关系映射程序(O/RM),提供了 CodeFirst/DbFirst/CURD/表达式函数/读写分离 等基础封装. ...
- 入门系列之在Ubuntu 16.04使用Buildbot建立持续集成系统
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由angel_郁发表于云+社区专栏 介绍 Buildbot是一个基于Python的持续集成系统,用于自动化软件构建,测试和发布过程. 在 ...
- cocos creator主程入门教程(四)—— 网络通信
五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 前面已经介绍怎样加载资源.管理弹窗.开发一个网络游戏,难免要处理网络通信.有几点问题需要注意: 1.服务 ...
- 史诗级Java资源大全中文版
本文来自GitHub 上 Awesome - java 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容包括:构建工具.数据库.框架.模板.安全.代 ...
- mssql sqlserver 三种数据表数据去重方法分享
摘要: 下文将分享三种不同的数据去重方法数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复. 数据去重方法1: 当表中最在最大流水号时候,我们可以通过关联的方式为 ...
- Windows下安装lxml库方法
如果直接用pip install lxml安装成功,那么恭喜!!! 一般在windows安装都十分蛋疼,pip无法直接安装(提示错误一大片,此处省略……) 因此选择wheel安装方式,步骤如下: 1. ...
- 设置Mac 终端走代理
1.打开终端执行:export http_proxy=socks5://127.0.0.1:1080 这个只能在当前终端执行一次退出后就需要重新设置 如果需要开机自动设置,把上面的代码加到~/.bas ...
- Microsoft Edge浏览器下载文件乱码修复方法
随着Windows10的普及,Microsoft Edge自带浏览器使用频率逐渐提升,在日常使用过程中我们会发现一个常规的问题是使用Edge进行日常文件下载的时候,N多情况下可能都是乱码,同样的下载链 ...
- CentOS7 使用firewalld打开关闭防火墙与端口
1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...
- PyQt5 api 帮助文档
学习PyQt5的帮助文档是通过,使用help(PyQt5 class)的方式在console端输出帮助内容,常用的方法和属性查找起来不是很方便,现在放在网上以方便大家使用. QWidget Qt QM ...