Java设计模式
文章平均质量分 86
No8g攻城狮倾力打造,通俗易懂,广受好评。原价 99 元,现特价 9.9 元。
花 9.9 元购买专栏你可以享受到的服务如下:
1、私信我享受专属服务;
2、进陪伴学习群与小伙伴们一起进步;
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
No8g攻城狮
》博主介绍:全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域
》技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。
》感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。
展开
-
【Java设计模式】Java设计模式之(二十三)享元模式(Flyweight Pattern)
本文目录一、组合模式介绍1.1 含义1.2 适用场景1.3 主要解决1.4 应用实例1.5 优缺点二、组合模式实现2.1 类图2.2 角色分析2.3 代码实现三、源码分析这种类型的设计模式属于结构型模式。一、组合模式介绍1.1 含义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对原创 2021-09-27 17:51:23 · 425 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(二十二)外观模式(Facade Pattern)
这种类型的设计模式属于结构型模式。一、组合模式介绍1.1 含义外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。在日常编码工作中,我们都在有意无意的大量使用外观模式。只要是上层模块需要调度多个子系统(2个以上的类对象),我们都会自觉地创建一个新的类封装这些子系统,提供原创 2021-09-13 14:26:25 · 499 阅读 · 7 评论 -
【Java设计模式】Java设计模式之(二十一)组合模式(Composite Pattern)
本文目录一、组合模式介绍1.1 含义1.2 适用场景1.3 主要解决1.4 应用实例1.5 优缺点二、组合模式实现2.1 类图2.2 角色分析2.3 代码实现三、源码分析这种类型的设计模式属于结构型模式。一、组合模式介绍1.1 含义组合模式(Composite Pattern),也叫合成模式,又可以叫部分-整体模式(Part-Whole),是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的原创 2021-08-27 15:33:55 · 666 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(二十)桥接模式(Bridge Pattern)
本文目录一、桥接模式介绍1.1 含义1.2 适用场景1.3 主要解决1.4 应用实例1.5 优缺点二、桥接模式实现2.1 类图2.2 角色分析2.3 代码实现三、源码分析这种类型的设计模式属于结构型模式。一、桥接模式介绍1.1 含义桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。将抽象部分与他的实现部分分离这句话不是很好理解原创 2021-08-25 15:13:17 · 460 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十九)装饰器模式(Decorator Pattern)
这种类型的设计模式属于结构型模式。一、装饰器模式介绍1.1 含义装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。1.2 适用场景① 扩展一个类的功能。② 动态增加功能,动态撤销。1.3 主要解决子类膨胀的问题。一般的,我们为了扩展一个类经常使用继承方式实现原创 2021-08-18 21:00:38 · 498 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十八)代理模式(Proxy Pattern)
这种类型的设计模式属于结构型模式。一、适配器模式介绍1.1 含义代理模式(Proxy Pattern),一个类代表另一个类的功能。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。1.2 适用场景按职责来划分,通常有以下使用场景:① 远程代理。② 虚拟代理。③ Copy-on-Write 代理。④ 保护(Protect or Access)代理。⑤ Cache代理。⑥ 防火墙(Firewall)代理。⑦ 同步化(Synchronizatio原创 2021-08-12 17:26:09 · 677 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十七)适配器模式(Adapter Pattern)
这种类型的设计模式属于结构型模式。一、适配器模式介绍1.1 含义适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通原创 2021-07-27 16:56:53 · 455 阅读 · 7 评论 -
【Java设计模式】Java设计模式之(十六)空对象模式(Null Object Pattern)
这种类型的设计模式属于行为型模式。一、空对象模式介绍1.1 含义在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。空对象模式并不是 GoF 那本《设计模式》中提原创 2021-07-26 16:14:11 · 526 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十五)策略模式(Strategy Pattern)
本文目录一、策略模式介绍1.1 含义1.2 适用场景1.3 主要解决1.4 应用实例1.5 优缺点二、策略模式实现2.1 类图2.2 代码实现第一个案例:策略模式代码实现第二个案例:策略模式代码实现三、源码分析这种类型的设计模式属于行为型模式。一、策略模式介绍1.1 含义在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为原创 2021-07-26 11:49:54 · 711 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十四)访问者模式(Visitor Pattern)
访问者模式属于行为型模式。在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。一、访问者模式介绍1.1 模式意图用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。1.2 通用类图二、模版方法模式的应用所有设计模式的代码实现例子都原创 2021-07-05 17:24:32 · 1342 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十三)模板方法模式(Template Method Pattern)
状态模式属于行为型模式。在模板方法模式(Template Method Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。一、模板方法模式介绍1.1 模式意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。1.2 通用类图二、模版方法模式的应用所有设计模式的代码实现例子都可在码云上查看哦,感兴趣的可以查看哈,码云地址:h原创 2021-03-31 19:55:25 · 615 阅读 · 6 评论 -
【Java设计模式】UML类图与类的关系详解
一、UML简介UML(Unified Modeling Language)统一建模语言,是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行与分布式系统的原创 2021-03-25 11:01:18 · 662 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十二)状态模式(State Pattern)
状态模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象,类的行为是基于它的状态改变的。一、状态模式介绍意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接口中只有一个方法。而状态模式的接口中有原创 2021-03-22 11:06:36 · 549 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(十一)备忘录模式(Memento Pattern)
备忘录模式属于行为型模式。备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。一、备忘录模式介绍意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,原创 2021-03-19 09:26:59 · 388 阅读 · 5 评论 -
【Java设计模式】Java设计模式之(十)中介者模式(Mediator Pattern)
所有设计模式的代码实现例子都可在码云上查看哦,感兴趣的可以查看哈,码云地址:https://gitee.com/no8g/java-design-patterns原创 2021-03-03 14:57:54 · 613 阅读 · 8 评论 -
【Java设计模式】Java设计模式之(九)观察者模式(Observer Pattern)
观察者模式属于行为型模式。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者一般可以看做是第三者,举例说明:(1)比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。(2)比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。(3)对于观察者模式而言,肯定有观察者和被观察者原创 2021-02-25 18:07:51 · 591 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(八)迭代器模式(Iterator Pattern)
本文目录一、迭代器概述1.1 优缺点1.2 使用场景1.3 注意事项二、代码实现2.1 通用类图2.2 代码实现迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。迭代器模式属于行为型模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。一、迭代器概述意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚原创 2021-02-24 09:51:29 · 520 阅读 · 4 评论 -
【Java设计模式】Java设计模式之(七)解释器模式(Interpreter Pattern)
本文目录一、解释器模式介绍二、代码实现步骤一步骤二步骤三步骤四解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。一、解释器模式介绍意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问原创 2021-02-22 17:05:13 · 402 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(六)命令模式(Command Pattern)
本文目录一、命令模式介绍二、代码实现2.1 通用类图2.2 代码实现命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。一、命令模式介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤原创 2021-02-20 17:53:28 · 469 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(五)责任链模式(Chain of Responsibility Pattern)
本文目录一、责任链模式介绍二、代码实现2.1 业务逻辑2.2 代码实现顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。一、责任链模式介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都原创 2021-02-20 17:08:33 · 725 阅读 · 6 评论 -
【Java设计模式】Java设计模式之(四)建造者模式(Builder Pattern)
一、建造者模式介绍1.1 什么是构建者模式创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。1.2 适用场景:隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果多个部件都可以装配到一个对象中,但产生的运行结果不相同产品类非常复杂或者产品类因为调用顺序不同而产生不同作用初始化一个对象时,参数过多,或原创 2021-02-06 15:36:21 · 620 阅读 · 6 评论 -
【Java用法】Java设计模式之(三)原型模式(Prototype Pattern)
一、原型模式简介1、原型模式简介原型模式使用原型实例指定创建对象的种类,并且通过拷贝原型对象创建新的对象。Prototype模式提供了一个通过已存在对象进行新对象创建的接口(clone), clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。原型模式实际上就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。在初始化的信息不发生变化的情况下,克隆是最好的办法,既隐藏了对象创建的细节,又大大提高了性能。因为如果不用clone,每次new都需要执行一次构造函数,原创 2021-02-06 11:49:14 · 611 阅读 · 6 评论 -
【Java用法】Java设计模式之(二)工厂模式(Factory Pattern)
本文目录一、工厂模式的定义二、工厂模式的分类三、为什么要用工厂模式四、工厂模式的代码实现五、工厂模式之源码一、工厂模式的定义先来看一下GOF为工厂模式的定义:“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses原创 2021-01-26 21:54:17 · 567 阅读 · 5 评论 -
【Java用法】Java设计模式之设计的模式的原则
基本介绍里氏替换原则(Liskov Substitution Principle)在1988年,由麻省理工学院的一位姓里的女士提出的。 如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。换句话说,所有引用基类的地方必须能够透明的使用其子类对象。 在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法。 里氏替换原则告诉我们,继承实际原创 2020-11-17 21:40:47 · 373 阅读 · 5 评论 -
【Java设计模式】Java设计模式之设计模式的原则
设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么是这样设计的依据)。简单概括:单接依里开迪合。单:单一职责原则 接:接口隔离原则 依:依赖倒置原则 里:里氏替换原则 开:开闭原则 迪:迪米特法则 合:合成复用原则下面分别讲解每个原则。一、单一职责原则基本介绍对类来说的,即一个类应该只负责一项职责。如果类A负责两个不同的职责:职责1,职责2。当职责1需求变更而改变类A时,可能造成职责2执行错误,所以需要将类A的粒度分解.原创 2020-10-25 14:23:40 · 469 阅读 · 5 评论 -
【Java设计模式】Java设计模式及实践:23种设计模式全面讲解
设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。本文虽然命名为“Java设计模式”,但是设计模式并不是 Java这一编程语言的专利,它同样适用于 C++、C#、JavaScript 等其它面向对象的编程语言。Java 是典型的面向对象的编程语言,所以本文以 Java 为基础来讲解这 23 种设计模式。目前在这里只是对Java设计模式以及用法的目录汇总,以后会详原创 2020-10-24 21:56:18 · 2698 阅读 · 7 评论 -
【Java设计模式】Java设计模式之(一)单例模式(Singleton Pattern)
本文继续介绍23种设计模式详解系列之单例模式。一、单例模式的定义指一个类只有一个实例,且该类能自行创建这个实例的一种模式。二、单例模式的常见例子Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误;在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、Web 应用的配置对象、应用程序中原创 2020-10-24 22:23:42 · 602 阅读 · 5 评论