自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 retrofit设计模式

retrofit 的设计模式1. 建造者模式建造者模式的定义是:将一个复杂对象的构造与它的表示分离,使得建造过程可以创建不同的表示我们来看一下retrofit的构建代码很明显的建造者模式2. 门面模式门面模式要求一个子系统的外部与其内部通信必须通过一个统一的对象进行,而retrofit里这个统一的对象就是我们创建的Retrofit对象,我们只管配置Retrofit,然后获取接口对象...

2020-01-05 22:09:14 815

原创 24-桥梁模式

桥梁模式一、定义将抽象和实现解耦,使得两者可以独立的变化桥梁模式的通用类图Abstraction是抽象化角色,它的主要职责是定义出该角色的行为,同时保存一个队实现化角色的引用,通常是抽象类;Implementor是实现化角色,他是接口或抽象类,定义角色必须的行为和属性;RefinedAbstraction是修正抽象化角色,它引用实现化角色对抽象化角色进行修正;ConcreteImplem...

2020-01-05 20:29:57 131

原创 23-享元模式

享元模式一、定义使用共享对象可有效的支持大量的细粒度的对象要求细粒度对象,就会使得对象数量多而且性质相近,为了区分,将对象分为两个部分:内部状态与外部状态内部状态,内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随着环境改变而改变,他们可以作为一个对象的动态附加信息,不必直接存储在具体某个对象中,属于可共享的部分外部状态,外部状态是对象得以依赖的一个标记,是对环境改变而改变的、...

2020-01-05 20:28:24 122

原创 22-解释器模式

解释器模式一、定义给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子解释器模式的类图AbstractExpression是抽象解释器;TerminalExpression是终结符表达式,实现与文法中的元素相关联的解释操作,通常一个解释器模式只有一个终结符表达式,但可以有多个实例,对应不同的终结符;NonterminalExpression是非终结...

2020-01-05 20:26:59 95

原创 21-状态模式

状态模式一、定义当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。状态模式的通用类图如下State是抽象状态角色,负责对象状态定义,并且封装环境角色以实现状态切换;ConcreteState是具体状态角色,完成本状态的行为管理以及趋向状态管理(本状态如何股过度到其他状态);Context是环境角色,定义客户端需要的接口,并且负责具体转台的切换;状态模式的通用源码...

2020-01-05 19:13:20 111

原创 20-访问者模式

访问者模式一、定义封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作通用类图Visitor是抽象访问者,生命访问者可以访问那些元素,在程序中visit方法的参数定义那些对象是可以被访问的;ConcreteVisitor是具体访问者,它定义访问者访问到一个类后要做什么事情;Element是抽象元素,生命接收哪一些类访问者访问,通过acce...

2020-01-05 19:11:40 138

原创 19-备忘录模式

备忘录模式一、定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。通俗地说,备忘录模式就是一个对象的备份模式,提供了一种程序数据的备份方法备忘录模式的通用类图如下Originator是发起人角色,记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据;Memento是备忘录角色,负责存储Or...

2020-01-05 18:40:46 115

原创 18-门面模式

门面模式### 一、定义要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重“统一的对象”,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生门面模式的类图Facade是门面角色,此角色知晓子系统的所有功能和责任,一般会将客户端发来的请求委派到相应的子系统中,没有实际的业务逻辑 ,只是一...

2020-01-05 18:36:24 231 1

原创 17-观察者模式

观察者模式一、定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的通用类图Subject是被观察者,它必须能够动态地增加、取消观察者。它一般仅仅完成管理观察者并通知观察者的职责;Observer是观察者;concreteSubject是具体的观察者,定义被观察者自己的逻辑,同时定义对那些事件进行通知;ConcreteO...

2020-01-05 18:35:07 377

原创 16-组合模式

组合模式### 一、定义将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性组合模式的通用类图Component是抽象构件角色,定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性。 Leaf是叶子构件,其下再没有其他的分支,是遍历的最小单位。Composite是树枝构件,作用是组合树枝节点和叶子节点形成一个树形结构。组合模式的通用...

2020-01-05 18:31:38 108

原创 15-迭代器模式

迭代器模式一、定义提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节迭代器模式(Iterator Pattern)目前已经是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发迭代器的通用类图Iterator是抽象迭代器,负责定义访问和遍历元素的接口; ConcreteIterator是具体迭代器,要实现迭代器接口,完成容器元素的遍历;Aggregate是...

2020-01-05 18:29:58 110

原创 14-适配器模式

适配器模式一、定义将一个类的接口变换为客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式又叫做变压器模式,也叫做包装模式(Wrapper)适配器模式的类图Target是目标角色,该角色定义把其他类转换为何种接口,也就是我们的期望接口;Adaptee,是源角色是已经存在的、运行良好的类或对象,经过适配器角色的包装,它会变成 Adapter适...

2020-01-05 18:28:47 112

原创 13-策略模式

策略模式一、定义定义一组算法,将每个算法搜封装起来,并且使他们之间可以互换。策略模式的通用类图Context是封装角色,起承上启下作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化;Strategy是抽象策略角色,抽象策略算法,通常为接口,定义每个策略或算法必须具有的方法和属性;ConcreteStrategy是具体策略角色,实现抽象策略中的操作;策略模式的通用源码抽象...

2020-01-05 18:27:33 94

原创 12-装饰模式

装饰模式一、定义在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的类图Component为抽象构件,是一个接口或抽象类,定义最核心的对象,也就是最原始对象;ConcreteComponent 为具体构件,是抽象构件的实现,需要装饰的对象;Decorator是装饰角色,一般是一个抽象类,它的属性里必然有一个pri...

2020-01-05 18:26:00 101

原创 11-责任链模式

责任链模式一、定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链条传递该请求,直到有对象处理它责任链的通用类责任链模式的核心在“链”上,“链”是由多个处理者ConcreteHandler组成责任链的通用源码抽象处理者public abstract class Handler { private Handler...

2020-01-05 18:24:03 95

原创 10-命令模式

命令模式一、定义将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能命令模式的通用类图Receive接收者角色是干活的角色,命令传递到这里是应该被执行的;Command命令角色,需要执行的命令都在这里声明;Invoker调用者角色,接收到命令,并执行命令。命令模式的通用源码通用Receiver类public a...

2020-01-05 18:20:22 124

原创 09-中介者模式

中介者模式一、定义用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示的相互作用,从而使其耦合松散,而且可以独立地改变他们之间的交互中介者的通用类图Mediator是抽象中介者角色,定义统一的接口,用于各同事之间的通信;Concrete Mediator是具体中介者角色,通过协调各同事角色实现协作行为,因此它必须依赖于各个同事角色;Colleague是同事角色,每一个同事角色都知...

2020-01-05 18:18:59 106

原创 08-原型模式

原型模式一、定义用原型实例指定创建的对象,并且通过拷贝这些原型创建新的对象。原型模型的核心是一个clone方法,通过这个方法进行对象的拷贝原型模式的通用类图原型模式通用源码public class PrototypeClass implements Cloneable{ //覆写父类Object方法 @Override public PrototypeClass clone()...

2020-01-05 18:16:43 86

原创 07-代理模式

代理模式(委托模式)一、定义为其他对象提供一种代理以控制对这个对象的访问代理模式的通用类图Subject 为抽象主题角色,是一个普通的业务逻辑类型, RealSubject为具体主题角色,也叫做委托角色,被代理角色,是业务逻辑的具体执行者。 Proxy为代理主题角色,也叫做委托类,代理类,他负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理...

2020-01-05 18:14:30 111

原创 06-建造者模式

建造者模式(生成器模式)一、定义将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示建造者模式通用类图建造者模式源码产品类public class Product { public void doSomething(){ //独立业务处理 }}抽象建造者public abstract class Builder {//设置产品的不同...

2020-01-05 18:04:24 93

原创 05-模板方法模式

模板方法模式一、定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义带算法的某些特定步骤。模板方法的通用类图如图模板方法仅仅使用了java的继承机制。其中AbstractClass叫做抽象模板,它的方法分为两类基本方法有子类实现的方法,并且在模板方法被调用模板方法可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基...

2020-01-05 18:02:39 114

原创 04-抽象工厂模式

抽象工厂模式一、定义为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类抽象工厂方法的通用类图如下抽象工厂模式是工厂方法模式的升级版本,应用于多个业务品种、业务分类产生对象的情况。下面为通用源代码类图与其代码通用源代码类图有两个相互影响的产品线(产品族,即不同的产品,如汽车发动机和方向盘)ProductA、ProductB,每个产品有连个登记,ProductX1...

2020-01-05 17:40:27 151

原创 03-工厂方法模式

工厂方法模式### 一、定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类工厂方法模式的通用类图如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5vTEr6Pt-1578216075246)(03-工厂方法模式.assets/1561523931082.png)]在工厂方法模式中,抽象产品类Product定义产品...

2020-01-05 17:25:43 151

原创 02-单例模式

单例模式一、定义确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例二、优点减少内存开支。特别是一个对象需要频繁的创建、销毁时,并且创建或销毁时性能有无法优化。减少了系统的性能开销。当一个对象的产生需要较多的资源时,如读取配置,产生其他依赖对象等。避免对资源的多重占用,例如写文件动作,如果只有一个实例在内存中,可以避免对同一个资源文件的同时写操作可以在系统设置全局的访...

2020-01-05 17:20:29 97

原创 01-设计模式-6大设计原则

设计模式-6大设计原则一、单一职责原则(SRP)定义:应该有且只有一个原因引起类的变更二、里氏替换原则(LSP)定义:所有引用基类的地方必须能透明地使用其子类的对象。即只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误和异常,使用者可能根本不需要知道是父类还是子类,但是反过来不可以,有子类出现的地方,父类未必可以使用这个定义包含了4层含义1.子类必须完全实现父类的方法...

2020-01-05 17:18:46 106

移动开发经典Demo

学校C语言商机试题

2015-08-16

空空如也

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

TA关注的人

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