自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android设计模式二十三式(二十三)——解释器模式(Interpreter)

解释器模式在一般开发中,我们很少还是用到解释器模式,但是我们都接触过,sql语句,正则,都是一个典型的解释器模式。解释器模式中给定一个语言,定义它的规则和标识,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。先看一下解释器模式的一些成员的定义:抽象解释器:具体的解释任务由各个实现类完成。终结符表达式:实现与文法中的元素相关联的解释操作,通常一个解释器模式中只有一个终结表达...

2019-05-30 15:28:45 389

原创 android设计模式二十三式(二十二)——中介者模式(Mediator)

中介者模式中介者模式也是用来降低类类之间的耦合的,因为如果类与类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。我们还是来举个栗子:某网络棋牌室,每一个房间有三个人打牌,平台从赢的人里面抽取5%作为管理费,然后其他人则根据规则赢钱或者输钱。那么,这个网络平台就是一个中介,打牌的三个人。代码实现一下/** * @author:...

2019-05-30 15:28:39 228

原创 android设计模式二十三式(二十一)——访问者模式(Visitor)

访问者模式访问者模式,主要的作用就是把数据结构和针对数据结构上的操作进行解耦,适用于数据结构稳定,但是针对数据的操作容易变化的场景,访问者模式,改变操作数据的方法容易,但是改变数据结构困难,如果数据结构经常变化,则不能使用此模式先来确定一下访问者模式的组成被访问者接口:提供接收访问方法被访问者:接收访问,将自己的提供给访问者,自己的结构不易变化访问者接口:提供不同的访问方法...

2019-05-30 15:28:30 184

原创 android设计模式二十三式(二十)——状态模式(State)

状态模式庄陶模式非常简单,就是根据某一个类值的变化,显示不同的状态,也可以有不同的操作,我们经常会用到。还是举个栗子:当我们打电话的时候,有呼叫中,通话总,通话结束,还有一个是通话中有另一个人再次呼入的多方呼叫状态,根据不用的状态,我们可以选择是接听还是挂断。/** * @author: hx * @Time: 2019/5/23 * @Description: State...

2019-05-30 15:28:23 665

原创 android设计模式二十三式(十九)——备忘录模式(Memento)

备忘录模式备忘录模式,办公人员几乎每天都会用到,不论我们在编辑什么类型的文档,还是编程,聊天,玩游戏,都在无时不刻的在使用它。那么,还是举一个简单的栗子,我们都在编辑文档的时候,使用过Ctrl+Z来撤销我们输入的错误内容,那么为什么当我们按下Ctrl+Z的时候,能将文本返回到上一个状态呢,这还是因为有个备忘录在记录每个时刻的状态,当你按下Ctrl+Z的时候,就将某一时刻备份的数据恢复出来。...

2019-05-30 15:28:10 169

原创 android设计模式二十三式(十八)——命令模式(Command)

命令模式命令模式,主要作用是将命令的发起者和命令的执行者进行解耦。举个栗子:返点到了,你妈妈喊你回家吃饭咯,那么这个命令的发起者就是你妈妈,你而你就是那个回家吃饭的命令执行者/** * @author: hx * @Time: 2019/5/22 * @Description: Command */public interface Command { /** ...

2019-05-30 15:28:01 194

原创 android设计模式二十三式(十七)——责任链模式(Chain of Responsibility)

责任链模式阅读过handler源码的同学,可能还有印象,handler的message存在队列中是以链式结构存在的,所以,这里,我们的责任链模式,核心就是一个链式的结构。当一个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终哪个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。...

2019-05-30 15:27:49 141

原创 android设计模式二十三式(十六)——迭代子模式(Iterators)

迭代子模式迭代子子模式,虽然很少会去使用,但是我们对它确实很熟悉,我们都知道,集合类对象中有迭代器,其实那即是迭代子模式。所以,迭代子模式,主要的作用就是遍历。我们先定义两个接口,一个是迭代器,用来迭代一个群体,一个包含迭代器和群体数据的接口。/** * @author: hx * @Time: 2019/5/17 * @Description: Iterator */...

2019-05-28 10:00:46 165

原创 android设计模式二十三式(十五)——观察者模式(Observer)

观察者模式观察者模式,适用于一对多的场合,即,当某一处发生了变化,需要通知多个地方去修改,在项目中是非常常用和常见的方法。它还被称为订阅发布模型,需要关注某个变化的,注册到相应的接口,当该变化发生时,即将变化发送通知到注册了的各个用户。还是举个例子,有一个报社,每天早上都会给定了报纸的人家准时发送报纸。我们专业一点来分析一下:1.报社可以接收新的家庭订报纸2.报社将退订和到期的家庭...

2019-05-27 10:37:31 213

原创 android设计模式二十三式(十四)——模板方法模式(Template Method)

模板方法模式既然叫做模板方法,从字面上大致就知道,应该是所有的实现有共性。抽取可共性的部分,个性的部分由具体实现类来实现。举个栗子:我们给客服打电话办理业务,要先拨号码,然后办理业务,最后要给客服打分,那么,共性的拨号和评价部分,就可以放在一个父类中,而办理的业务由于是不同的客户有不同的业务,所有由顾客自己选择。/** * @author: hx * @Time:...

2019-05-27 10:37:21 145

原创 android设计模式二十三式(十三)——策略模式(Strategy)

策略模式从今天开始,我们就开始行为型模式的设计模式讲解了。我们在程序运行的时候,会用到一些比较有共性的对象,比方有负责图像有SurfaceView,也有SurfaceTexture,还有SurfaceTexture。再比方我们http请求网络的时候,有get,post,put,delete等等。这些都是有不同的实现但是有一个共同的功能,所以,专门根据运行时的需要,选择不同的具体实现类,...

2019-05-27 10:37:11 124

原创 android设计模式二十三式(十二)——享元模式(Flyweight)

享元模式享元模式,从字面上就可以看出来,是对元素的共享,所以享元模式主要就是管理元素,进行共享通常情况下,享元模式会和工厂模式一起使用,我看还是举个例子线程池大家应该都不陌生,即使不了解的同学,应该也听过这个名字。池使用的就是享元模式,除此之外,还有String常量池,没有的对象创建后存在池中,若池中存在该对象则直接从池中取出。举个栗子有个电影院,只要客户看什么电影,它都能放,...

2019-05-24 17:13:13 142

原创 android设计模式二十三式(十一)——组合模式(Composite)

组合模式组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便在android中,比较常见的就是文件-文件夹的结构看代码:/** * @author: hx * @Time: 2019/5/16 * @Description: Directory */public class Directory { private String name; p...

2019-05-24 17:13:01 120

原创 android设计模式二十三式(十)——桥接模式(Bridge)

桥接模式桥接模式,主要特点就是实现和抽象的分离,不只是简单的实现类实现抽象的功能,这样一来,无论是实现类扩展,还是抽象的扩展,都可以很方便的进行。通过使用封装、聚合及继承等行为让不同的类承担不同的职责。这么说还是太抽象了,简单来讲,就是一个类的功能,有两个维度来控制,两个维度都有不同的实现,可以进行随意的组合。举个栗子:我们出门旅游,可以去北京,可以去湖北,出行方式可以使开车,坐火车和...

2019-05-23 09:52:07 218

原创 android设计模式二十三式(九)——外观模式(Facade)

外观模式外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口。外观模式定义了一个高层的功能,为子系统中的多个模块协同的完成某种功能需求提供简单的对外功能调用方式,使得这一子系统更加容易被外部使用。这么说可能还是不太理解,我们还是举个栗子...

2019-05-22 09:42:15 155

原创 android设计模式二十三式(八)——代理模式(Proxy)

代理模式代理模式,看起来非常像装饰器模式。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)也都实现同一个接口。此外,不论我们使用哪一个模式,都可以很容易地在真实对象的方法前面或者后面加上自定义的方法。然而,实际上,在装饰器模式和代理模式之间还是有很多差...

2019-05-22 09:41:50 158

原创 android设计模式二十三式(七)——装饰器模式(Decorator)

装饰器模式所谓的装饰器,字面上的意思,就是对某个东西进行装饰,在原始的基础上,再添加上一些其他的功能,让整个效果更佳完善。所以,这里就有一个而基础功能,还有就是装饰功能。装饰模式的特点就是,装饰器和被装饰者都实现了同一个接口,装饰器中有被装饰者。我们依旧来个小场景。假设我们有一个女朋友,今天你要带她出席一个很盛大的晚宴,所以她平时只会用水洗个头发,今天就得用上洗发液,护发素,弹力胶,最后还...

2019-05-22 09:41:40 287

原创 android设计模式二十三式(六)——适配器模式(Adapter)

适配器模式我们先讲适配器模式,后面的装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式,都是依赖于适配器模式中的对象的适配器模式为起源的。适配器模式,简单来讲,就是某个类的接口和另一个接口不匹配,将某个类的接口转换成客户端期望的另一个接口表示。目的是消除由于接口不匹配所造成的类的兼容性问题。1.类的适配器模式我们还是模拟一个场景,市电都是220V的交流电,但是手机充电是5...

2019-05-17 14:32:07 288

原创 android设计模式二十三式(五)——工厂模式(Factory)

工厂模式在这一篇,我会把工厂模式和抽象工厂模式两个梵高一起来讲1.简单工厂模式/** * @author: hx * @Time: 2019/5/6 * @Description: Producer */public interface Car { /** * 车的基本方法和属性 */ void brand();}/** * @a...

2019-05-16 09:31:05 416

原创 android设计模式二十三式(四)——原型模式(Prototype)

原型模式因为类初始化需要消耗非常多的资源,包括数据、硬件资源等,通过原型拷贝则可以避免这些消耗,而且new一个对象会经过非常繁琐的数据准备或访问权限,假若一个对象需要供给其他对象访问,而且各个对象都需要修改其值时,可以拷贝多个对象供调用者访问,即保护性拷贝,以上就是用到原型模型的场景。总而言之,及时你需要用到一个对象,还需要修改该对象部分值,保留部分值,你就可以用它。下面就结合代码来说明一下...

2019-05-15 17:21:40 136

原创 android设计模式二十三式(三)——建造者模式(Builder)

Build模式/建造者模式Build模式,在开发中非常常见,也很实用,最常见的,就是创建Dialog的时候,用起来,有点像链式调用,看一下我用build模式写的一个Data对象的调用方法。创建一个Data对象 Data data = new Data.Builder() .category(getCategory()) ...

2019-05-15 10:08:59 135

原创 android设计模式二十三式(二)——单例模式(Singleton)

我们先从创建型模式,按照顺序,慢慢来解开设计模式的面纱单例模式适用场合需要频繁的创建和销毁的对象; 创建对象时耗时过多或耗费资源过多,但又经常用到的对象; 工具类对象; 频繁访问数据库或文件的对象 管理类对象;1、饿汉式(静态常量)public class Singleton { private final static Singleton INSTANCE ...

2019-05-13 17:25:46 114

原创 android设计模式二十三式(一)——设计模式规则

今天开始系统做一下设计模式的内容,将设计模式融入到自己的项目中,就是有指导思想的去编程,可以让你像站在一个沙盘旁边的将军一样,指点江山,总体上把我项目的结构设计。总体来说设计模式分为三大类:创建型模式五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式十一种:策略模式、...

2019-05-13 10:56:48 112

原创 nodejs上传文件和下载文件到本地(三)——nodejs项目使用https

解决了上传和下载的之后,又遇到了衣蛾新的问题,所有的网路请求都要求必须是https的,百度了一卷,说的都很多,但是试过之后都没什么很好的用处,于是决心自己潜心来研究一下。首先,都提到要用openssl工具生成,私钥,CSR签名证书,然后通过私钥和CSR签名证书生成证书文件,就是三个文件附上openssl下载地址http://slproweb.com/products/Win32OpenSS...

2019-04-26 10:19:20 1398

原创 nodejs上传文件和下载文件到本地(二)——下载文件到本地篇

上次讲完了上传的部分,今天来说说下载的部分,下载可是坑了我不少,下载的文件名一直是中文乱码,内容倒是很正常。包的管理还是用一个表格来呈现,把上一个包管理的删除按钮功能换成下载功能即可文件下载和上传不同,不需要传路径地址什么的,其实请求都可以很随意,如果不是为了区分是什么文件,在前段页面只需要做一件事发一个请求,只需要简单的一句话就行function downloadPackage(p...

2019-04-25 14:19:17 6468

原创 nodejs上传文件和下载文件到本地(一)——文件上传篇

继上一篇设置端口之后,公司又有了新的开发需求了,原来用java写过一套的升级包管理服务,现在因为新的项目需要,java代码太冗余了,所有要求用nodejs来完成升级包管理和运维服务,这个新的任务,自然而然就落到我身上了。还好之前接触过nodejs的东西,做起来不至于一脸懵逼,这次也算是深入学习一下nodejs,数据库用的是Mysql。主要上床这一块的主要代码了页面的布局的布局代码...

2019-04-24 09:56:34 3800

原创 restemplate使用HttpClient发送请求绑定本地端口port(三)—— windows客户端发送http请求socket本地端口范围限制

我们继续上一篇客户端linux设置本地端口之后,我们看看windows怎么设置本地端口:英文好的同学,可以直接点击下满的网址,不好的同学,我也给大家一个翻译版。https://support.microsoft.com/en-us/help/929851/the-default-dynamic-port-range-for-tcp-ip-has-changed-in-windows-vista...

2019-04-17 09:27:58 1981

原创 restemplate使用HttpClient发送请求绑定本地端口port(二)——linux客户端发送http请求socket本地端口范围限制

上一篇已经讲过怎么绑定端口发送http请求和https请求,但是只能运行在单线程中不会出问题,然鹅,多线程发送请求时,就会出现一个socket不够用的情况,这就要求请求的端口需要设置一个范围,在范围内可以复用。先写一个main方法模拟多线程请求的情况public static void main(String[] args){ try { fina...

2019-04-16 19:22:58 2026 1

原创 restemplate使用HttpClient发送请求绑定本地端口port(一)——单线程socket绑定本地端口

最近公司android项目处于维护阶段,开始做了一些java和运维的项目,也用nexus搭建公司的私服,好了,废话也不多说,开始今天的主题,怎么用HttpClient的请求框架绑定本地发送请求端口我们都知道,网路简历连接,都离不开socket套接字,所以只有在这里我们才能设置好网路请求一些参数写了一个小程序,试了一下绑定socket的本地端口public void send(Stri...

2019-04-12 13:36:37 2805 2

原创 linphone源码研究之callState回调——无法及时获取sip消息中正确的AudioDirection和VideoDirection

需要准备的材料:1.liphone4android-master代码,此代码已经编译过,可直接运行到手机上需要的伙伴可以自行下载:https://github.com/treasure-lau/Linphone4Android2.linphone-3.11.1,此代码为linphone底层源码,在linphone官网下载即可这里项目代码和C源码并不是用一个版本,项目为3.10....

2018-12-13 18:48:53 1965

原创 Android修改语言设置--项目需求需要修改在应用中修改系统时间

这里直接贴上代码,防止自己忘记try { IActivityManager am = ActivityManagerNative.getDefault(); Configuration config = am.getConfiguration(); switch (checkedLanguage) { case ViewGlobal.LANGUA...

2018-05-07 10:39:45 644

转载 android获取帧保存到本地

package com.fx.realtimevideodemo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.ImageFormat;import android.graphics.Matrix;import android.graphics.Rect

2017-12-20 14:06:00 646

原创 关于AsyncTask运行机制

AsyncTaask中有三个方法比较重要的方法,onPreExecute(),doInBackground(),onPostExecute(),分别在主线程,子线程,主线程执行,那么,画红线的地方,就是参数类型要一致的地方, 我们就来探究一下他们是怎么去执行的。我们先找到AsyncTask的execute方法()可以看到,方法接收一个可变的参数判断中Status是什么呢

2016-09-05 21:12:39 439

原创 关于handler的那些事

在handler中,空参构造中调用了一个静态方法Looper.myLooper();在myLooper()方法中,调用sThreadLocal.get()返回了一个Looper类型对象这里说明了looper不是new出来的,而是从当前线程get到的,说明这个looper在一个线程中是一个单例那么,在哪里创建的looper对象的呢?调用prepare()即可,

2016-08-29 21:20:59 452

原创 volley源码浅析

volley可以同时发送多个网络请求volley请求之前会在CacheDispatcher缓存队列中擦汗看是否存在,存在则直接诶加载出来显示成功或者失败没有的时候,才在网络上去请求操作(NetWorkDispatcher),当网络请求结束后,往主线程发送数据通知主线程更新页面StringRequest请求出来后,就将请求add到了请求队列里面去了,放到队列里面去了之后,在队列里

2016-08-28 01:07:03 446

空空如也

空空如也

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

TA关注的人

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