自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Must_Do的博客

记录点滴生活

  • 博客(20)
  • 资源 (12)
  • 问答 (1)
  • 收藏
  • 关注

原创 中介者的简单使用

前言中介者模式又叫调解者模式,属于行为类模式,其意义在于封装一系列对象操作,使原本需要相互显式调用的各个对象不再需要直接显式调用,而是通过中间对象来做这个事情;这样就会将原本的网状结构变成了星型结构,各个对象只需要去对这个中间者交互,这样做就变得简单了。适用场景当对象之间的交互多而杂,相互依赖彼此,那么自然而然在后续修改中要跟着改所有的依赖,这样代码的扩展性就差了点,中介者模式完全适合,其解决了该场

2017-12-27 13:05:00 242

原创 访问者模式简单使用

“访问者模式是要解决对对象添加新的操作和功能时候,如何尽可能不修改对象的类的一种方法。”我觉得这个解释非常好,我们使用观察者模式的用意就是完成这个目的,以至于添加一个统一的接口accept,来接受一个访问者对象,怎么做到区别对待呢,那就是通过Visitor的不同来处理不同的操作,再怎么解释也不如甩个demo。适用模式要用这个模式,其对象必须要结构稳定,当然子类可以增加属性;另一方面如果使用对象不

2017-12-26 22:38:16 1041

原创 模板模式的简单使用

前言定义一个操作的算法步骤,固化一个算法流程,子类按着自己的需求复写父类的部分方法,使得子类可以不改变固化的算法步骤,即可重新定义该过程的特定步骤。这个最熟悉的应该是Activity的生命周期,当然各种组件的生命周期都是模板模式的,这个就很容易理解了。适用对象1,多个过程逻辑基本相同。 2,重复的算法,可以提取核心作为模板,子类各抒己见。 3,很多时候我们要简化Activity或者其他类的逻辑,

2017-12-26 22:34:54 223

原创 迭代器模式的简单模式

前言迭代器模式又叫游标模式,是一种行为型模式,我们常常用到的Sqlite的数据库查询就用到了这种模式,更多时候我们用的多的或许是java的Iterator类,来遍历数据;而迭代器模式提供顺序遍历对象各个元素,又不暴露对象的内部表示。适用模式1,访问一个对象的内容而无需暴露它的内部表示; 2,遍历容器对象; 3,为遍历不同的结构提供一个统一的接口。角色扮演Iterator:迭代器接口,负责定义、访

2017-12-26 22:31:56 236

原创 备忘录模式的简单使用

前言备忘录模式是一种行为模式,用于存储对象的当前状态,这个在Android开发中最常见的事Activity的恢复onSaveInstanceState方法,存储当前activity的状态,对于备忘录模式的定义,百度百科解释如下:备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。适用模式1,我们要保存对象的

2017-12-26 00:00:41 286

原创 观察者模式的简单使用

前言我们在Android ListView或者Recyclerview的开发中,常常是数据更新之后要立刻去更新界面,这种Adapter的notifyDateSetChanged就运用了观察者模式;观察者模式是一种使用率非常高的模式,常常用到GUI之类的的系统中,界面跟随数据发生改变,使得UI和具体的页面逻辑分开解耦,换而言之,观察者模式就是一对多的关系,一个对象发生改变,其依赖于它的所有对象都收到通

2017-12-25 21:52:06 376

原创 命令模式的简单使用

前言命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,从而解耦的执行相关的操作。命令模式也叫行动模式或者交易模式;使用命令模式的优点就是在新加入命令的时候很容易扩展,而且如果要存储命令执行顺序也很容易维护一个这样的队列,很容易实现命令的撤销与恢复,大多数优点都基于维护一个队列。角色扮演Receiver:具体执行请求操作类,其具体方法叫行动方法。 Command:声明了一个命令

2017-12-23 16:53:45 633

原创 解释器模式的简单使用

前言解释器模式使用频率比较少,顾名思义解释器模式就是给定一个语言,定义它的语法,然后解释器根据协议来解释这个语言,得到结果。类似于翻译吧。我觉得用的最多的就是计算表达式了:“A+B”,解释器就是按着操作符区分变量和运算符,然后得到A+B的结果。适用模式某个语言需要解析执行,比如解析XML之类的,可以用到解释器模式。再者如果特定场景不断重复这个场景,可以提取语法,抽象出解释其模式。角色扮演Abstra

2017-12-20 11:11:31 1109

原创 责任链模式的简单使用

前言责任链模式自如其名,就是谁的责任谁来处理这个问题,但是对于这件问题只有一个请求入口,逐个传递达到结束请求的目的。其结构很像生活中的铁链,由一个个小的椭圆形的圆环相连,将每一个圆环看做一个对象,每一个对象都拥有不同的处理逻辑,首端发出请求,这些对象就会按需求来看谁满足处理这个请求的能力,沿着这个链结构逐个传递,最终解决问题。如果还不形象,我就举一个例子,你找领导报销10000元出差补助,你找了你的

2017-12-18 22:52:10 529

原创 状态模式的简单使用

前言状态模式简而言之就是指我要做一件事,这件事能导致什么后果我不管,由当前状态来决定,比如我有两块钱,我想吃点东西就去了商店,结果怎么样得看这个商店有两块钱的什么东西,如果商品都大于两块,我还不能吃到食物了;这就和策略模式特别像了,他们的结构完全一样,状态模式的行为是由状态来决定,行为是平行的不可替换的,而策略模式的行为是可替换的,因为它都是为了完成同一个行为。

2017-12-18 20:51:45 1148 2

原创 策略模式的简单使用

前言最近上班基本都没写java(Android)代码了,这段时间被系统研发部借去开发PHP网站,下班回家抽点时间可以整理一下关于java的设计模式,当然这也适用于Android。今天要整理的事策略模式。在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能;很常见的就是排序算法,我们完成一个排序可以通过很多算法,但是到头来

2017-12-17 16:34:09 285

原创 抽象工厂模式简单使用

前言工厂方法模式指定了抽象了产品的功能,等待具体产品去实现该功能,而工厂方法不管产品的任何实现,只需要按需返回指定产品类;但是当工厂类生产的产品差别很大的时候,要对每一个产品区别化时,我们需要去更改具体的Product类的方法,比如汽车的例子,我们两个车的引擎不一样,那么我们就要去改Product类里面的Engine的具体实现,这种情况下,抽象工厂模式就更适合。抽象工厂模式可以对产品的零部件做一个基

2017-12-17 15:08:18 359

原创 工厂方法模式的简单使用

前言工厂模式是java中使用特别广泛的一种设计模式,如过对象很复杂或者多个对象拥有一些共同的特性,比如数据存储,可以使txt,也可以是sql数据库,或者说是xml文件,当然Android还提供了preferences,都是存储文件那么方法的作用就会大同小异,这种情况下就很容易想到工厂模式。

2017-12-14 20:39:13 252

原创 原型模型的简单使用

前言原型模型的使用在Android里最大的体现是Intent,通过看源码不难发现,intent传值进去之后在startActivity之前会clone一份Intent,说回来原型模式其实就牵扯到拷贝问题,换一句话,预防对象被意外改动使用拷贝就是原型模式。使用场景1.类初始化操作复杂,牵扯到太多资源的。 2.一个对象需要提供给其他对象访问,那各个调用它的对象都可能更改它的值,但是更改的值只对该对象使

2017-12-14 20:02:45 1561

原创 Builder模式的简单实现

前言Builder模式是将对象的构建和表示分离,好比构建一辆汽车,Builder是将部件和组装过程分离,从而达到高内聚低耦合的目的。使用场景1.相同的方法,结果和执行顺序有关。 2.多个部件都可以组装到一个对象中,但是结果和这个部件有关。 3.产品非常复杂,或者初始化对象非常复杂(参数太多)。简单的代码实现Build分为Products产品类(产品的抽象类)、Builder类(规范产品的组建,但

2017-12-14 09:42:47 386

原创 单例模式的几种实现

前言不管是学习什么语言,都会用到设计模式,那么Android也一样,只不过Android说回来其实就是Java,我想借用一些课余的时间,整理一下Android的设计模式。首当其冲的就是单例模式,这个在开发中使用最广泛了。单例模式的几种实现在Android源码中有很多使用了单例模式,比如WindowsManagerService、ActivityManagerService等系统级别

2017-12-13 18:17:28 326

原创 Android Kotlin入门(RecyclerView的使用)

前言作为Android开发,很有必要了解一下系统新特性,也很有必要了解一下新的开发语言(Kotlin),借着昨天晚上的时间入入门,今天中午记录一下。就不以helloword入门了,我们写一个Recyclerview列表吧。开干Android Studio 升级到3.0,自带kotlin功能,新建项目也完全一样,以前创建MainActivity.java 现在创建kotlin文件,创建一个kt文件,继

2017-12-07 13:40:45 1494

原创 快速入门PHP(环境、debug、开发)

前言作为一名Android工程师,有时候也要接触一下传说中世界上最好的语言,11月中旬老板说想做一个网站,就接触了php这门最好的语言,而且要快速开发,到12月初网页功能基本已经完成,所以记录一下,说不定以后有用呢,以前都没有记录的习惯,比如才入职的时候编译的PJSIP,现在要编译又得看看去了,所以好记性不如烂笔头。入门(开发环境与debug环境)以安装环境入门吧,PHPStorm + Wampse

2017-12-06 16:48:21 2615

原创 linux下jar包的生存与开机自动启动

前言 作为一名Android开发,有的时候也是要做做其他工作的,前段时间写了一个很简单的java消息转发程序,因为和三方厂商合作,对方只提供了java的sdk,然而我们这边都是清一色的C#后台开发人员,所以我就起到桥梁的作用了,总结一下简单的工作,以后回望或许有所感想。程序方面 怎么提供消息给C#程序员呢?那当然是RabbitMQ,这个相对简单,也贴一下,万一以后会用到MQ呢? /

2017-12-04 13:07:33 11282 1

原创 ImageLoader加密解密共存

ImageLoader加密解密共存问题提出 Android开发中异步图片显示应用特别广泛,我们常常会用到imageloader、Glide、picasso或者其他开源框架,各有好处,我们这边开发中经常使用的是imageloader,但是在最近的项目开发中,我们图片的URL是加密的二进制流,出于项目的需要,我们需要对加密流进行解密。一个简单的解决方法 出于快速开发的想法,想寻找一个特别简单的能

2017-12-04 11:01:15 271

用android仿写一个可视化语音信箱界面且保证点击item动画展开可以完全显示

博客对应demo

2017-04-05

android的一系列治疗

里面有:1,android学习路线 2.多线程断点下载 3.仿微信界面,4,仿UC浏览器5.微信开发包SDK等

2014-12-05

android学习路线

android学习路线,很适合初入android的人

2014-12-04

微信开发包sdk(含demo)

一个微信的开发包,里面有demo代码,很适合做微信开发的人。

2014-12-04

仿天天动听android源码

天天动听最新源码,可运行,适合初学者。如需android的其他源码可以给我发私信,我有的免费给。

2014-12-03

做一个用matlab人脸的系列代码

当初做matlab一个人脸检索和特征点定位时的一些参考代码和文档,里面压缩的有很多代码和文档,包括论文,全压缩了。大家象征性的给2分。

2014-12-03

HTML5从入门到精通

一个网上购买的教材,很适合做页面设计的,html5教程

2014-12-03

proc上机教程

数据库的proc编程技术上机教程,很适合参考,,,里面有一步步的步骤。

2014-12-03

数据库安全

一个实有的教程,有详细的截图步骤,适合初学者。

2014-12-03

程序员面试

一个软件学生面试应该看的文档,关于一些面试问题。

2014-12-03

oracle数据库基础的经典三个表,S表,C表,SC表脚本。

oracle数据库基础的经典三个表,S表,C表,SC表脚本。

2014-06-06

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

TA关注的人

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