Java设计模式之创建型模式--原型模式

一:简介原型模式用起来很简单,我们只需实现Cloneable接口,重写clone方法即可。使用原型模式的目的,是为了避免初始化是需要消耗很多的资源,new一个对象时需要进行繁琐的数据准备。二:例子假设,创造一个人,设置他的性别,国籍,种类(黑人还是白人还是黄种人)。等等之类,比方说现在就这三个属性。

2017-06-17 14:48:52

阅读数 120

评论数 0

Java设计模式之创建型模式--建造者模式

一:简介建造者模式可以将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以有不同的表示。二:角色 Product:表示被构造的复杂对象。 Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 Con...

2017-06-14 22:53:41

阅读数 132

评论数 0

Java设计模式之创建型模式--单例模式

单例模式它确保了某个类只有一个实例对象。对于单例模式,一般来说由一个私有的属性(对自己的引用),一个私有的构造,加上一个提供给外部使用的静态方法构成。下面介绍一下单例的几种写法

2017-06-13 13:57:55

阅读数 113

评论数 0

Java设计模式之创建型模式--工厂方法及抽象工厂模式

Java设计模式之创建型模式–工厂方法模式一:工厂方法1.我们先看类图2.工厂方法是针对每一种产品提供一个工厂类,比如我是生产A类产品的,但是A类产品又分为google旗下和华为旗下,这是我需要提供两个工厂,每个工厂生产属于自己的产品A。3.关于工厂,还有一个简单工厂就不介绍了,它只是在创建产品A...

2017-06-12 19:00:08

阅读数 143

评论数 0

Lambda表达式的使用

用Lambda表达式开启线程 我们知道,开启一个子线程。可以这么写: new Thread(new Runnable() {             @Override             public void run() {                 buffer.append(&q...

2017-06-06 13:01:45

阅读数 3056

评论数 0

沉浸式状态栏

在这篇末尾也提到过沉浸式状态,不过那时是借助了Design Support库,嵌套了好多布局,实在是太麻烦了。。。文章传送门 下面介绍一种更简单的方式。 ....  @Override     protected void onCreate(Bundle savedInstanceState) {...

2017-06-05 18:18:37

阅读数 178

评论数 1

android中软键盘弹出,将布局顶上去

将需要顶上去的内容添加一个ScrollView布局     android:layout_width="match_parent"     android:layout_height="match_parent"     android:scrol...

2017-05-26 14:40:40

阅读数 252

评论数 0

MaterialDesign的使用

一.Toolbar 如果要使用Toolbar,一般我们需要隐藏ActionBar。 一般的做法,                 @color/colorPrimary         @color/colorPrimaryDark         @color/colorAccent    ...

2017-05-18 15:56:47

阅读数 159

评论数 0

Dagger2基本使用与原理

上一篇介绍了Dagger2的一些注解点击打开链接 一、Dagger2的一些简单配置 1.在build.gradle(project..)中添加apt插件 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 2.在build.grad...

2017-05-12 13:44:47

阅读数 7530

评论数 0

Dagger2简介

一、简介 Dagger2起源于Dagger,是一款基于Java注解来实现的完全在编译阶段完成依赖注入的开源库,主要用于模块间解耦、提高代码的健壮性和可维护性。Dagger2在编译阶段通过apt利用Java注解自动生成Java代码,然后结合手写的代码来自动帮我们完成依赖注入的工作。 二、依赖注入(...

2017-05-12 12:39:17

阅读数 531

评论数 0

java回调机制

现在有以下场景:我遇到一个问题,比如1+1=?,我不会怎么办,那么我就去找别人,这里别人比如就是小明。好,那么我要问问题,我打电话给小明问他1+1=几,但是我打电过去的时候,小明刚好在做一件很急的事情,那么我先把我的问题告诉他了,等他忙完了一定要告诉我答案。好了。过了1个小时他忙完了,打电话给我告...

2017-05-08 10:58:30

阅读数 108

评论数 0

android中四种更新UI的方法

1.activity的 runOnUiThread 源码如下: public final void runOnUiThread(Runnable action) {         if (Thread.currentThread() != mUiThread) {            ...

2017-05-08 10:38:40

阅读数 135

评论数 0

Handler机制

一、handler中用到的一些类。 1. Message      消息,理解为线程间通讯的数据单元。例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程。     2. Message Queue      消息队列,用来存放通过Handler发布...

2017-05-03 19:09:23

阅读数 90

评论数 0

序列化与反序列化

话不多说,直接开工 1.我们有一个User类,实现了Serializable接口 public class User implements Serializable { private static final long serialVersionUID = -1L; pub...

2017-04-25 15:03:48

阅读数 115

评论数 0

Reader与Writer的IO操作

Reader与Writer:用来处理“字符流”(文本文件),与字节输入输出流类似,Reader和Writer建立了一条通往字符文件的通道,提供了相应的读写方法。 下面介绍两种集成了Reader和Writer的输入输出字符流, Reader提供的一些方法: public int read();...

2017-04-20 18:08:20

阅读数 214

评论数 0

InputStream与OutputStream文件操作

一:InputStream与OutputStream提供了输入输出流来对文件进行操作,可以用来处理二进制文件,也可以用来处理文本文件。 但是这两类是抽象类,所以我们使用时,需使用实现它们的子类。 FileInputStream:文件输入流,它表示一个文件字节输入流,从中可读取一个字节或一批字节; ...

2017-04-19 19:12:56

阅读数 199

评论数 0

RXjava实现计时按钮

1.首先导入Rxjava所需的依赖 compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.1.6' 2.当点击按钮后,执行代码   final int count = 59;         Ob...

2017-04-18 14:45:44

阅读数 788

评论数 0

ButterKnife插件的使用

1.安装ButterKnife插件 1).file--->settings--->Plugins 2).搜索Zel,点击Browse 3).搜索Zel,然后选择Install,然后重启AS即可。这样插件就装好了。 2.使用ButterKnife compi...

2017-04-06 14:22:32

阅读数 290

评论数 0

RxJava的基本使用

网上也看了很多关于rxjava的使用,万变不离其中。 首先都很好奇rxjava是什么,讲真的我也不清楚,感觉挺迷的,但是关于rxjava就知道两点就能轻松使用。 1.观察者模式 2.异步操作 1)什么是观察者模式 上篇文章,也介绍过,讲白了就是观察者去观察被观察者,当被观察者发生动静的时候,观察者...

2016-11-22 19:34:18

阅读数 226

评论数 0

观察者模式

这是我的首篇博客,对于大神来说,博客既是一段积累知识的学习过程,又是一种分享自己收获的精神所在。而对与我这个菜鸟级的人来说,这首先肯定是我的积累过程,其次我觉得作为自己学习的知识,不可能全部记住,是时候去把一些东西整理出来,自己找起来也比较方便。所以。。。不喜勿喷。

2016-11-22 18:45:06

阅读数 160

评论数 0

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