
设计模式
niuyongzhi
这个作者很懒,什么都没留下…
展开
-
Retrofit动态代理+注解+反射简析
Retrofit实现核心代码分析原创 2022-07-19 00:10:10 · 564 阅读 · 0 评论 -
设计模式--外观模式
1.什么是外观模式?当一个用户类需要和某个系统中的多个子系统打交道时,为了避免该类和子系统中的类产生过多的依赖关系,可以采用外观模式。外观模式,为这些子系统提供一个外观类进行功能的封装,外观类负责和子系统中的类打交道,用户类和外观类打交道,简化了用户类和子系统进行交互和依赖。2.如何实现?1)子系统,是若干个类的集合,这些类协同为用户提供所需的功能,子系统中的任何类都不包含外观类的引用2)外观类(Facade),该类包含子系统中全部或部分类的实例引用。外观类可以替代子系统中的类和用户打打交道原创 2022-03-07 13:57:05 · 3164 阅读 · 0 评论 -
设计模式--责任链模式
1.什么是责任链模式?当一个请求可能需要多个对象中的某个进行处理时,将这些对象连成一条链,并沿者这条链传递该请求,知道有一个对象处理它为止。这样的情况或需求时,可以采用责任链模式。2.如何实现?1)处理者接口(Handler),负责定义处理请求的抽象方法,并设置下一个处理着的方法。2)具体处理者,实现Handler接口中定义的方法。实现处理用户请求的逻辑,并设置下一个处理请求的对象。如果能够处理用户求情就处理,如果不能处理,交给下一个对象进行处理。3)封装类。对以上的具体处理者进行封装,原创 2022-03-05 11:51:53 · 2680 阅读 · 0 评论 -
设计模式--策略模式
1.什么是策略模式?定义一系列算法,把它们一个个封装起来,并且使他们可以相互替换。通俗的讲,实现同一个功能,有多种方法或策略。可以把这些方法或策略提取并封装起来。需要使用哪种方法,传对应的对象进来就行。2.如何实现?1)定义一个策略接口,该接口定义若干抽象方法。2)具体策略,实现策略接口,并实现接口中定义的方法。3)封装调用类,持有策略接口的引用。当用户需要完成某项功能时,只需向这个类传入相应的策略对象,并调用方法即可。3.代码实现以文件的加密解密为例做说明。1)策略接口原创 2022-03-04 19:57:54 · 1794 阅读 · 0 评论 -
设计模式--适配器模式
1.什么是适配器模式?将一个类的接口转换成为客户希望的另外一个类的接口。适配器(Adapter)模式是的原本由于接口不兼容而不能在一起工作的类,可以一起工作。比如,小米充电器,可以给小米手机充电,目前,想让苹果充电器给小米手机充电。如何完成,这时候需要一个适配器,将小米充电器和苹果充电器连在一起。2.如何实现?1)目标接口,该接口是客户想要使用的接口(苹果充电器)2)被适配者,是一个已经存在的接口或抽象类。(小米充电器)3)适配器,是一个类,该类实现了目标接口,并包含被适配者的引用。原创 2022-03-04 17:23:28 · 702 阅读 · 0 评论 -
设计模式--装饰模式
1.什么是装饰模式?当我们想要改进或增强某个对象的功能,而又不想继承该类创建子类,可以考虑使用装饰模式。使用装饰模式增强对象的某个功能,比生成子类再增强,更为灵活。2.如何实现?1)抽象组件:定义一个抽象类,该抽象类定义了“被装饰者”需要被“装饰的方法”2)具体组件:抽象组件的一个子类。成为“被装饰类”3)装饰组件:也是抽象组件的一个子类。该类中持有“被装饰者”的引用,用来调用被装饰者的方法。可以为抽象类,也可以是非抽象类。4)具体装饰类:是装饰组件的一个子类,被称为“装饰者”原创 2022-03-03 18:08:07 · 234 阅读 · 0 评论 -
设计模式--代理模式
1.代理模式。当用户和某个对象打交道,但是程序可能不希望用户之间访问该对象,而是提供一个中间对象来和用户打交道。这个中间对象就被称为代理对象。这种模式被称为代理模式。代理模式的特点:代理对象和被代理对象实现相同的接口。当用户需要访问某个方法时,...原创 2022-03-03 11:20:35 · 170 阅读 · 0 评论 -
设计模式--观察者模式
1.观察者模式是什么?顾名思义,有两个对象,观察者和被观察者。当被观察者数据发生变化时,提醒观察者更新数据或状态。2.如何实现?1)定义两个类,观察者和被观察者。2)被观察者要维护一个集合,存放观察者对象。并且提供增删方法。3)被观察者数据发生变化时,要调用观察者的方法,以便通知观察者更新数据或状态。4)基于面向抽象原则,可以将观察者和被观察者中的方法提取接口中。3.代码实现1)观察者接口/** * 抽象观察者接口 */public interface Obser原创 2022-02-28 20:48:18 · 287 阅读 · 0 评论 -
设计模式--抽象工厂模式
1.当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。2.如何实现?1)抽象产品--Car2)具体产品--BYDCar、TSLCar3)抽象工厂Factory4)具体工厂--BYDFactory、TSLFactory3.代码实现/** * 抽象产品 */public abstract class Car { public abstract String getName();}/** * 具体产品 */原创 2022-03-02 17:26:23 · 173 阅读 · 0 评论 -
设计模式--工厂方法模式
1.工厂方法是什么?众所周知,工厂是生产产品的,并且产品供消费者使用。消费者不必关心产品的生产过程,只需要关心用哪种产品就行。在Java世界中,工厂方法模式和现实功能类似。工厂即一个工厂类,提供获得对象(产品)的方法(工厂方法)。其他类(消费者)需要用到某个对象时,只需调用工厂方法就行,不必new这个对象。2.如何实现?1)创建产品的抽象类或接口---抽象产品2)创建具体产品的类---具体产品3)创建工厂的抽象类或接口---抽象构造类4)创建具体工厂类---具体构造类3.代码原创 2022-03-02 16:47:59 · 302 阅读 · 0 评论 -
设计模式--单例模式
1.什么是单例模式?仅对外提供一个对象。2.如何做到?1)首先,需要私有化构造方法,这样才能保证此类无法被创建对象。2)其次,要对外提供获得对象的方法,并且只能是静态方法。为了保证线程安全,还需要加上同步锁。这个对象可以在方法中被调用的时候创建。3)此外,还需要一个静态变量来接收这个对象。知识点:为啥是静态变量。3.代码 实现单例模式的有多种方法,下面提供的是工作中最常用到的方法。public class SingleTon { /** * 私有化构造方.原创 2022-02-28 18:41:10 · 208 阅读 · 0 评论