自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

野生程序员

一步一步往上爬

  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 设计模式—装饰模式

定义动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式生成子类更灵活。使用场景需要透明且动态的扩展类的功能时关键点一个抽象组件角色—接口或抽象类,被装饰的原始对象一个或多个具体组件—抽象组件的具体实现,被装饰的具体对象一个抽象装饰角色—抽象类,装饰组件对像,持有组件对象引用一个或多个具体装饰类—对抽象装饰者的具体实现实现/** * 抽象组件 */public abstract cla

2018-01-31 22:31:35 222

原创 设计模式—适配器模式

定义适配器模式把一个类的接口转换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的的两个类能够在一起工作使用场景系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作需要一个统一的输出接口,而输入端的类型不可预知关键点一个目标角色—所期待得到的接口一个需要被转换的角色—需

2018-01-31 21:54:39 227

原创 设计模式—组合模式

简介组合模式也成为部分整体模式,它将一组相似的对象看作一个对象来处理,并根据一个树状结构来组合对象,然后提供统一的方法去访问相应的对象定义将对象表示成树形结构以表示“部分—整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。使用场景表示对象的部分、整体层次结构时从一个整体中能够独立出部分模块或功能的场景关键点一个抽象根节点—声明组合对象的接口,在适当情况下实现所有类共有接口的缺省行为一个

2018-01-30 19:44:31 211

原创 设计模式—代理模式

定义为其他对象提供一种代理以控制对这个对象的访问使用场景当无法或不想直接访问某个对象或者访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口关键点一个抽象角色—声明具体对象和代理对象共同的接口方法为抽象类或者接口,被访问对象和代理对象均实现该方法一个具体对象角色—被委托对象或被代理对象,执行具体的业务逻辑方法

2018-01-30 19:10:37 209

原创 设计模式—中介者模式

定义中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而可以使他们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。从而保证这些作用可以彼此独立变化。中介者模式将多对多的相互作用转化为一对多的相互作用。中介者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。使用场景当对象之间的交互操作很多且每个对象的行为操作都

2018-01-24 23:26:21 166

原创 设计模式—访问者模式

简介访问者模式是一种将数据操作与数据结构分离的设计模式,基本思想是软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象都拥有一个accept方法用来接受访问者对象的访问。访问者是一个接口,拥有一个visit方法,这个方法对访问到的对象结构中不同类型的元素做出不同的处理。定义封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义这些元素的新的操作。使用场景对象结

2018-01-23 23:18:53 210

原创 android架构设计—mvp模式封装

简介关于Android程序的构架, 当前比较成熟且使用最多的应该就是MVP架构了,当然还有其他的如:MVC和MVVM。MVC相对于较为落后,、耦合度太高、职责不明确,MVVM使用DataBind,普及性不如MVP,况且Google官方提供了Sample代码来展示MVP模式的用法。因此选择MVP架构毫无疑问。概念MVP即Model、View、PresenterView:负责视图部分展示、视图事件处理。

2018-01-21 14:10:52 10791 5

原创 设计模式—模板方法模式

定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤,通俗来讲就是流程固定,具体实现不同使用场景多个子类有公有的方法,并且逻辑基本相同重要、重复的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现重构时,模板方法模式是一个经常使用的模式,把共同的代码抽取到父类中,然后通过钩子函数约束其行为关键点一个抽象类,定义

2018-01-18 22:40:39 237

原创 设计模式—迭代器模式

简介 作为开发者,势必会涉及到容器的操作,比如Java中的List、Map等,对容器的访问必然会涉及到遍历算法,如果将对容器的遍历封装在容器内部,对容器而言就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还要对外提供遍历的接口方法,因为遍历状态的存储问题不能对同一个容器同时进行多个遍历操作,如果开发者不提供遍历算法让使用者自己去实现,又会对容器的内部细节暴露,正因如此,迭代器模式应运而生。

2018-01-18 22:02:07 195

原创 设计模式—备忘录模式

简介备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。定义在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可将该对象恢复到原先的状态。关键点一个原始数据对象,负责创建一个备忘录,可以记录、恢复自

2018-01-16 23:10:20 266

原创 设计模式—观察者模式

定义定义对象间一种一对多的依赖关系,使得每当一个对象状态改变时,所有依赖于它的对象都会得到通知并被自动跟新使用场景关联行为场景,需要注意的是关联行为是可拆分的,而不是组合关系事件多级触发场景跨系统的消息交换场景,如消息队列、事件总线的处理机制关键点一个抽象被观察者(Observable)—抽象主题把所有观察者对象的引用保存在一个集合里,每个主题都有任意数量的观察者,抽象主题提供一个接口,可以增加和删

2018-01-15 23:09:05 157

原创 设计模式—命令模式

简介命令模式其实就是将一系列的方法调用进行封装,用户只需要调用一个方法执行,那么所有这些被封装的方法将会被依次调用。定义将一个请求封装成一个对象,从而让用户使用不同的请求将客户端参数化,对请求队列或者记录请求日志,以及支持可撤销的操作使用场景需要抽象出待执行的动作,然后以参数的形式提供出来在不同时刻指定、排列和执行请求。一个命令对象可以有与初始请求无关的生存期需要支持取消操作支持修改日志功能,这样当

2018-01-15 21:43:19 190

原创 设计模式—责任链模式

定义使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条连传递该请求,直到有对象处理它为止。使用场景多个对象可以处理同一请求,单具体由哪个对象处理则在运行时决定在请求处理这不明确的情况下向多个对象提交一个请求需要动态指定一组对象处理请求关键点一个抽象类,定义处理请求的方法,并持有下一节点对象的引用,对请求进行分发多个具体的请求处理类,对请求进行具

2018-01-14 18:54:30 188

原创 设计模式—状态模式

简介状态模式中的行为由状态决定,不同的状态下有不同的行为。状态模式和策略模式的结构相同,但本质和目的却完全不一样。状态模式的行为是平行、不可替换的,策略模式的行为时彼此独立、可相互替换的。概括起来就是状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。定义当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其行为使用场景一个对象的行为取决于它的状态,并

2018-01-11 23:43:04 220 1

原创 设计模式—策略模式

定义策略模式定义了一系列算法,并将每一个算法封装起来,而且使他们可以相互替换。策略模式让算法独立于使用它的客户而独立变化。通俗的讲就是通过动态注入不同的对象或实现来动态替换某种具体行为。使用场景1.针对同一类型问题的多种处理方式,仅仅是具体行为有差别 2.需要安全的封装多种同一类型的操作 3.出现同一抽象类有多个子类,而又需要使用条件语句来选择 具体子类时关键点一个抽象的策略或算法一个或多个具体

2018-01-10 23:32:49 256

原创 抽象工厂方法模式

定义为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定他们的具体类使用场景一个对象族有相同的约束时可以使用抽象工厂模式。例如生产一部车需要很多部件:轮胎、发动机、制动系统等,不同的型号会有不同的部件,而这些部件之间又是相互依赖的。这时候就可以考虑使用抽象工厂模式。关键点抽象工厂—声明一组用于创建一个产品的方法,每个方法对应生产一种产品或者称之为组件具体工厂—抽象工厂的实现类,实现了在 抽象

2018-01-01 14:57:19 221

原创 设计模式—工厂方法模式

定义定义一个用于创建对象的接口,让子类决定实例化哪个类使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复合对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。关键点一个抽象工厂—定义创建对象的接口抽象工厂的实现类—可以是一个实现或多个实现,用于生产需要的具体对象一个抽象产品—工厂方法模式所创建的产品的父类抽象产品的实现类—需要被创建的具体产品实现/** * 抽象工厂类

2018-01-01 00:46:49 316

PermissionsDemo

Android 6.0权限封装

2017-08-01

自定义闪屏页广告倒计时view

自定义闪屏页广告倒计时view

2017-05-19

空空如也

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

TA关注的人

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