
设计模式
陆小叁
认知、行动、坚持
展开
-
Java单例模式实现的两种方式和应用场景
单例模式的定义 个人理解,单例是指单个实例,在整个应用程序当中有且仅有一个实例存在,该实例是通过代码指定好的(自行创建的)。 为什么要使用 解决在高并发过程中,多个实例出现逻辑错误的情况。 在特定的业务场景下避免对象重复创建,节约内存。 实现的两种方式 饿汉式 顾名思义,不管有没有使用到该对象,只要程序启动成功,该单实例对象就存在。 代码如下: /** * 饿汉式 */ public class SingletonHungry { private static SingletonHung原创 2021-08-16 08:34:13 · 492 阅读 · 0 评论 -
设计模式(五)之适配器模式
适配器模式 概念 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或者不兼容的接口功能。 它将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变的可以调用。 特点 源(Adaptee):需要被适配的对象或类型,旧版本或者是内存卡和笔记本之间的读卡器。 适配器(Adapter):连接目标和源的中间对象,相当于一个转换器,新旧版本可以实现兼容。 目标(Ta原创 2020-09-17 08:35:39 · 296 阅读 · 0 评论 -
设计模式(四)之装饰者模式
装饰者模式 概念 装饰者模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构模式,它是作为现有类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整的情况下,提供了额外的功能。 特点(模式定义) **Component(抽象构件):**它是装饰类和具体构件的公共父类。 **ConcreteComponent(具体构件):**它是抽象构件对象的子类,用来定义具体的构件对象。 **Decorator(原创 2020-09-16 08:39:11 · 170 阅读 · 0 评论 -
设计模式(三)之模板方法模式
模板模式 概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按照需求重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式同策略模式和责任链模式一样,都数据行为型模式。 模板模式相当于根据业务模型为程序定义了一个操作中的算法骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 特点 关键代码在抽象类实现,其他步骤在子类实现。 AbstractClass:抽象类,定原创 2020-09-15 08:45:59 · 231 阅读 · 0 评论 -
设计模式(二)之责任链模式
责任链模式 概念 责任链模式(Chain of Responsibility Pattern)为请求创建了一个接受这对象的链。这种模式基于请求的类型,对请求的发送者和接受者进行解耦。这种类型的设计模式同策略模式一样都属于行为型模式。何为解耦呢?就是说当客户端发出了一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。 特点 更形象的描述为C语言的双向指针,每个处理器都明确的知道上一个处理器和下一个处理器是谁。 多个对象可以处理同一个请求,但具体由哪个对象处理则是由运行时的环境决原创 2020-09-14 08:18:21 · 138 阅读 · 0 评论 -
设计模式(一)之策略模式
关于设计模式的总结有结合网上优质的文章以及本人在实际工作当中使用到的场景概述。 会总结关于工作当中我们做为开发者常用到的几种设计模式。 由于工作原因,关于博文的总结都是在工作之余完成的,有不好的地方欢迎指正,谢谢。 所有关于设计模式的代码,都会托管到:设计模式代码,欢迎关注。 在日常工作开发中我们为什么要使用到设计模式呢?本人做为一名JAVA开发人员,最先想到的是"万物皆对象",不服咱就new一个呗。但是为了开发人员之间的通信,为了可以更准确地描述及问题的解决方案,又不得不考虑到设计模式。好处呢?当然是.原创 2020-09-12 08:19:55 · 334 阅读 · 0 评论