自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 robolectric完全解析

官网地址:http://robolectric.org介绍:在android设备上跑测试用例太慢了,编译、部署、启动app要花费很多时间。Robolectric是一个单元测试框架,测试是运行在jvm上的,只需要几秒钟。使用:在build.gradle中添加testCompile "org...

2017-08-02 20:12:05

阅读数 5378

评论数 0

原创 Robotium框架的使用和源码解析

使用:1、添加依赖androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.3'2、添加测试代码,例如:@RunWith(AndroidJUnit4.class) public class MainActivityTest ...

2017-08-01 20:46:58

阅读数 333

评论数 0

原创 动态申请权限

官方文档中已经有了详细的介绍和使用说明 https://developer.android.google.cn/guide/topics/security/permissions.html#normal-dangerous下面是我的一些总结:1、为什么要动态申请权限?系统权限分为正常权限和危险权限...

2017-07-26 16:27:07

阅读数 243

评论数 0

原创 gradle中的依赖传递

依赖中的传递依赖怎么去除?1、查看依赖树./gradlew app:dependencies 如果提示zsh: permission denied: ./gradlew 错误,可以输入:chmod +x gradlew 2、可以通过在gradle中配置,去除依赖compile('com.and...

2017-07-10 20:19:12

阅读数 938

评论数 0

原创 访问者模式

访问者模式(Visitor Parttern)属于行为模式,主要用于将数据结构和数据操作分离。使用时,在被访问的类中添加一个方法,通常方法的参数是访问者,这样可以将自身引用传入访问者。总而言之就是,被访问者提供可以访问自身的接口,访问者来操作数据,通过这样实现解耦。可以使用在在对象结构很少变化,对...

2017-06-30 11:28:22

阅读数 164

评论数 0

原创 中介者模式

中介者模式(Mediator Pattern)式属于行为型模式。是用来降低多个对象和类之间的通信复杂性。:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。比如:MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)...

2017-06-29 16:17:23

阅读数 199

评论数 2

原创 状态模式

状态模式(State Pattern),属于行为型模式。允许对象在内部状态发生改变时改变它的行为,看起来好像修改了它的类。当代码中包含大量与对象状态有关的条件语句时就可以使用状态模式。可以将各种具体的状态类抽象出来,对象的行为依赖于它的状态(属性),所以状态改变而改变它的相关行为。也就是可以修改类...

2017-06-28 18:18:04

阅读数 148

评论数 0

原创 命令模式

命令模式(Command Pattern)属于行为型模式。这个模式将请求通过命令的形式封装成对象。用来将“行为请求者”与“行为实现者”解耦,这样用户只需要提出一个命令,而不用关心这个命令由谁实现。应用场景:比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的,可以采...

2017-06-27 11:19:26

阅读数 127

评论数 0

原创 桥接模式

桥接模式(Bridge pattern)属于结构型模式。是用于把抽象化与实现化解耦,使得二者可以独立变化。当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。就可以用桥接模式。简单的demo:比如食物有牛奶,米饭,香蕉。我要吃饭就吃从这些食物中选。桥接模式可以将抽象的我要吃的那顿饭和实体的...

2017-06-26 18:21:11

阅读数 104

评论数 0

原创 解释器模式

解释器模式(Interpreter Pattern)属于行为型模式。意图是给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。一个简单的demo:当前的环境,用于存储当前环境下自定义变量的真假public class Context { private ...

2017-06-25 21:53:30

阅读数 123

评论数 0

原创 模板方法模式

模板方法模式(Template pattern)属于行为模式,用于定义构建某个对象的步骤与顺序,或者定义一个算法的骨架。可以在一个抽象类公开定义执行它的包含执行顺序方法的方法,它的子类可以按需要重写方法实现。demo:游戏的模板抽象类:public abstract class Game { ...

2017-06-24 15:38:56

阅读数 143

评论数 0

原创 装饰器模式

装饰器模式(Decorator Pattern)属于结构型模式。用户向一个现有的对象添加新的功能,同时又不改变其结构。例如,现在有个Girl类,学习的是语数外。现在有的女孩也有学习其他特长,在不改变Girl类的情况下,添加学习舞蹈、唱歌、绘画等特长。Child抽象类:public abstract...

2017-06-23 21:32:51

阅读数 136

评论数 0

原创 原型模式

原型模式(Prototype Pattern)属于创建型模式。用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式可以用来创建重复对象。java中通过实现Cloneable接口,重写clone方法实现。一个简单的浅克隆的demo:public class ProtoType i...

2017-06-22 14:36:01

阅读数 157

评论数 0

原创 外观模式

外观模式(Facade Pattern)属于结构型模式。用来向用户提供一个可以访问系统的接口。在用户调用和复杂系统之间再加一层,这一层用来将处理调用顺序和依赖关系。demo: 在开电脑和关电脑的时候,我们不需要知道电脑的内部结构,只需要按开关就可以了电脑中CPU、硬盘、网络的启动和关闭:publ...

2017-06-21 11:10:18

阅读数 126

评论数 0

原创 适配器模式

适配器模式(Adapter Pattern)属于结构型模式,他用于将一个类的接口转换成用户希望的另外一个接口。 在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象。demo: 机器人生产厂家想生产一个新产品,可以模仿狗叫,狗跑的机器人机器人接口:public interface Rob...

2017-06-20 19:38:46

阅读数 123

评论数 0

原创 组合模式

组合模式(Composite Pattern),属于结构型模式,组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性(统一的接口),在调用时可以忽略复杂的层次结构,使用统一的方式去操作层次结构中的所有对象。使程序能够与复杂元...

2017-06-19 19:51:49

阅读数 104

评论数 0

原创 享元模式

享元模式(Flyweight Pattern)属于结构型模式。主要用于减少创建的对象数量,来减少内存占用,提高性能。用法是将很多对象分为几类,确定每个类对象的唯一标示,可以用HashMap存储。简单的demo: 画很多圆的时候,不需要每个圆形都创建一个对象,假设创建不同颜色的画笔是一个很大的开销...

2017-06-18 20:46:33

阅读数 172

评论数 0

原创 责任链模式

责任链模式(Chain of Responsibility Pattern)属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。下面的demo为我们常见的log打印:定义Log责任链的接口:publ...

2017-06-17 18:37:26

阅读数 130

评论数 0

原创 迭代器模式

迭代器模式(Iterator Pattern)属于行为型模式。用于顺序访问集合对象的元素,而且不需要知道集合对象的底层结构。迭代器接口,定义了访问集合的两个方法public interface Iterator { public boolean hasNext(); public ...

2017-06-16 18:09:30

阅读数 140

评论数 0

原创 备忘录模式

备忘录模式(Memento Pattern)式属于行为型模式。他用来保存一个对象的某个状态,以便在适当的时候恢复对象。很简单的demo:记录对象的状态public class LastState { private String state; public LastState(Str...

2017-06-15 17:21:38

阅读数 126

评论数 0

提示
确定要删除当前文章?
取消 删除