自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 代码设计原则

1.找出会变化的部分,将它与不会变化的部分分离出来 2.实现可拓展,但并不会对已有的造成修改 3.面向接口编程而非面向对象

2017-01-14 10:37:30 283

原创 装饰者模式

所谓的装饰者模式是指:在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。在装饰模式中的各个角色有: (1)抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 (2)具体构件(Concrete Component)角色:定义一个将要接收附加责任的类。 (3)装饰(Decorator)角色:持有一

2017-01-13 16:31:19 217

原创 观察者模式

什么是观察者模式:一个被观察者管理所有依赖他的观察者,在它自身发生状态改变时主动对所有观察者发出通知。 简单举个例子:报社订阅杂志这样一个行为。在这里报社就是被观察者,所有订阅了杂志的消费者就是观察者。报社一旦出了新杂志,变会给所有订阅了杂志的消费者快递杂志。 又或者开关和灯泡:一个开关是被观察者,他具有开和光两种行为。和他关联的灯泡就是观察者,当开关开时,所有建立了联系的灯泡就会亮,开关关时,

2017-01-13 10:13:29 277

原创 策略模式

策略模式是针对对象行为的一种模式。即将对象具有多种实现的行为单独抽取出来。实现行为的修改不会触及到原有对象的变动。简单举个例子: 现在正在构建一个商城系统,我们有顾客对象,他拥有购买物品可以打折的行为;public class Customer { public void discount(){ System.out.println("给顾客打折"); }}但是我

2017-01-12 16:23:01 229

原创 图片加载错乱,Glide无法设置Tag解决方式

因为Adapter对View的复用以及图片网络请求的耗时问题有时候在快速滑动且网络不佳的情况下会出现图片加载错乱。 即滑动到屏幕内发出网络请求,但并未请求完成就已滑出屏幕,待到请求完成时,就加载到了其它ItemView上。 常用的做法是将uri设置为ImageView的tag例如: String title = dataBean.getTitle(); String

2016-12-26 15:42:01 4632

原创 Java反射机制

/* * 类也是一种对象,是java.lang.Class类的实例对象 * */public class Test { public static void main(String[] args) { /* * 表示Class类的实例有三种方法 * */ //1: Class c1=Person.clas

2016-10-06 14:45:42 846

原创 Android消息机制(Handler机制)

Handler构造时会采用当前线程的Looper来构造消息循环系统。而Handler的内部是通过ThreadLocal来获取的当前线程Looper。(线程默认是没有Looper的,所以使用Handler时必须为线程创建Looper,主线程(UI)线程是默认被创建时就初始化了Looper);Handler创建完成后,在子线程利用post方法将一个Runnable投递给Handler内部的Looper去

2016-09-30 14:08:30 293

原创 约束布局基础

1.app:layout_editor_absoluteX=”0dp” app:layout_editor_absoluteY=”0dp” //用于设置控件在ConstraintLayout中并未约束的绝对位置。 2.app:layout_constraintTop_toTopOf=”@id/button3” 同理还有topToBottom BottomToBottomOf,LeftTo

2016-09-27 09:08:24 3028

原创 并发1:任务与线程

并发通常是提高运行在单处理器上的程序的性能。当以单线程运行所有任务时,虽然不会因为切换线程节省资源,但一旦出现阻塞(IO请求等),则在阻塞接触前单线程会发生等待。如果采用并发可在此时切换任务节省时间。(所以没有任务会被阻塞的情况下在单处理器上使用并发并没有意义) CPU**轮流**给每个线程任务分配其占用时间。(例外情况是程序运行在多个CPU之上) 我们通常通过实现Runnable接口实现r

2016-09-23 12:22:02 375 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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