Android 设计模式 笔记 - 状态模式
2016-07-19 09:26
323 查看
介绍
状态模式和策略模式几乎完全一样,但是他们的目的和本质却是完全不一样的。状态模式的行为是平行的且不可替换的,策略模式的行为则是彼此独立的,而且是可以相互替换的。即:状态模式把对象的行为包装在不同的状态对象里面,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象再其内部状态改变的时候,其行为也要发生改变。定义
当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了基类,其实没有,他的基类是一个抽象基类。使用场景
一个对象的行为取决于他的状态,并且他必须在运行时根据状态改变他的行为,代码中包含了大量与对象有关的条件语句,例如:if...else...或者switch....case...,并且这些分支依赖与该对象的状态。
角色
Context:环境类,定义用户感兴趣的接口,维护一个state子类的实例,这个实例定义了对象的当前状态。State:抽象状态类或者状态接口,定义或者一组接口,表示该状态的行为。
ConcreteStateA,ConcreteStateB:具体状态类,每一个具体状态类实现抽象State中定义的接口,从而达到不同状态的不同行为。
相关文章推荐
- Maven管理Android项目
- 在工具类里获取context 上下文对象 Android
- Android中SQLite应用详解
- Android官方文档之User Interface(Settings)
- iOS/Android·全球
- Android RecyclerView Adapter及Holder的封装【原创】
- Spread学习<一> GPIO详解
- Android Studio常用快捷键、Android Studio快捷键大全
- android 作业1相对布局(拼图)
- Android开发自定义View实现数字与图片无缝切换的2048
- Android阶段学习笔记7.18-7.20
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android图片下载"不容易"
- Android安全:如何逆向分析Android程序
- Android获取RAM大小,内部存储大小,外部存储大小
- Android动画系列之补间动画
- android studio xposed教程(含jar下载地址)
- NanoPC-T2(S5P4418)无法通过Android usb host API识别两个以上USB设备
- android源码中使用getDirtyBounds方法的类
- android 后台运行