
重温设计模式及其Java实现
文章平均质量分 93
Java实现设计模式,方便理解。
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
蒲同学聊AI
系统架构设计师,CSDN博客专家,华为云‧云享专家,阿里云专家博主,51CTO博客TOP红人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一张图快速了解23种设计模式
设计模式设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。这是《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented)中对设计模式的定义。看完以后你会不会和我有一样的感觉:这特么说是啥?于是,我找到了英文原文:The design patterns are descriptions of communicating objects and classes that are cu原创 2021-09-13 10:37:06 · 16036 阅读 · 20 评论 -
拆解工厂方法设计模式
设计模式,简单来说,就是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。它是为了解决在软件开发过程中反复出现的各种问题,提出的一种解决方案。设计模式主要分为三大类:创建型、结构型和行为型。其中,创建型模式主要关注对象的创建过程,如何创建和提供实例等。结构型模式主要关注类和对象的组合,行为型模式则主要关注对象之间的交互。工厂方法设计模式,是创建型模式中的一种。它提供了一种创建对象的最佳方式。原创 2024-01-17 09:32:56 · 1119 阅读 · 0 评论 -
【重温设计模式】抽象工厂及其Java示例
我们详细地探讨了抽象工厂模式,从它的概念、特点、结构和组成,到Java实现,再到优缺点和实际应用,我尽可能地将抽象工厂模式的各个角度做了全面的阐述。我们知道,抽象工厂模式是一种非常实用的设计模式,它可以帮助我们更好地抽象和封装代码,提高代码的可维护性和可扩展性。然而,设计模式并非银弹,我们需要根据实际的项目需求和场景来选择合适的设计模式。抽象工厂模式虽好,但并不适合所有的场景。当我们的系统的产品有多于一个的产品族,而系统只消费其中某一族的产品时,抽象工厂模式是一个不错的选择。原创 2024-01-29 12:07:01 · 1206 阅读 · 0 评论 -
【重温设计模式】工厂方法及其Java示例
在编程的世界里,设计模式就如同我们生活中的各种规则和习惯,它们帮助我们更高效、更优雅地解决问题。今天,我要向大家介绍的是一种非常实用的设计模式——工厂方法模式。工厂方法模式,又称为工厂模式,它是一种创建型设计模式,主要解决接口选择的问题。这种模式将对象的构造和使用分离,使得客户端在不必知道具体类的情况下,创建对象的实例。@Override@Override@Override@Override在这段示例代码中,是工厂接口,和是具体的工厂类,它们负责创建和这两种具体产品。原创 2024-01-27 12:27:57 · 983 阅读 · 0 评论 -
【重温设计模式】构建器及其Java示例
在编程的世界里,设计模式是一种让我们的代码更加优雅、可读、可维护的工具。其中,构建器模式是一种创建型模式,它提供了一种高效且灵活的方式来创建复杂对象。这种模式的主要特点是,它分离了对象的构造过程和表示方式,使得同样的构造过程可以创建不同的表示。例如,我们在创建一个复杂的OneMore对象时,可能需要设置许多属性,如果直接在构造函数中一次性设置所有属性,会使得代码难以阅读和维护。而构建器模式则可以将这个过程分解为多个步骤,每一步只负责设置一个属性,使得代码更加清晰。原创 2024-01-29 12:07:06 · 1428 阅读 · 0 评论 -
【重温设计模式】原型模式及其Java示例
在编程的世界里,有一种神秘而强大的法宝,它就是设计模式。设计模式,就像是一种编程的哲学,是对软件工程中的一些经典问题的通用解决方案。它能够帮助我们更好地组织代码,提高代码的可读性和可维护性,增强代码的稳定性和灵活性。而在这其中,有一种特殊的设计模式,它就是原型模式。原型模式,顾名思义,就是通过复制一个已存在的实例来返回新的实例,而不是每次都通过新建实例的方式。这种模式的特点是简单、高效,尤其适用于创建复杂或者构造耗时的实例。原创 2024-02-26 14:42:10 · 979 阅读 · 0 评论 -
【重温设计模式】单例模式及其Java示例
从设计模式的角度看,单例模式如同一位独行者,他独自在代码的江湖中行走,有时候他是解决问题的利器,有时候他是引发问题的源头。他的存在,既是因为他的优点——节省资源,全局控制,又是因为他的缺点——职责过重,线程安全问题。他就像是一面镜子,照出了软件设计的矛盾和挑战。在实际的编程工作中,我们需要对单例模式有清晰的认识,理解它的优缺点,知道它的适用场景。同时,我们也要注意,设计模式只是工具,而不是目标。我们应该根据实际的需求,灵活地运用设计模式,而不是生搬硬套。原创 2024-02-26 14:42:39 · 1009 阅读 · 0 评论 -
【重温设计模式】适配器模式及其Java示例
在软件开发的世界里,设计模式如同是我们的罗盘,指引着我们在复杂的代码海洋中航行。而其中的适配器模式,就如同是我们手中的万能钥匙,让我们能够灵活应对各种各样的设计问题。那么,什么是适配器模式呢?适配器模式,简单来说,就是将一个类的接口转换成客户希望的另外一个接口。它能使原本由于接口不兼容而不能一起工作的那些类可以一起工作。就像我们在生活中使用的电源适配器一样,让我们可以在不同的电压环境下使用同一台电脑。在软件开发中,适配器模式有着广泛的应用。例如,在开发一个新的系统时,我们可能需要使用一些已经存在的类,但是这原创 2024-02-27 10:14:56 · 732 阅读 · 0 评论 -
【重温设计模式】桥接模式及其Java示例
在桥接模式中,我们看到了设计模式的力量,也看到了Java语言的灵活性和强大性。我们通过桥接模式,将抽象和实现分离,使得两者可以独立地变化。这样的设计,让我们的代码更加灵活,更易于扩展。然而,桥接模式并非万能的。它的使用需要我们根据实际情况和需求,恰当地选择和使用。桥接模式的优点是分离了抽象部分和实现部分,使得我们可以独立地改变或者扩展抽象部分和实现部分。但是,它的缺点也是显而易见的。由于它将抽象和实现分离,增加了系统的理解和设计难度。对于初学者来说,可能需要花费更多的时间和精力去理解和掌握这种模式。原创 2024-02-29 18:00:00 · 852 阅读 · 0 评论 -
【重温设计模式】组合模式及其Java示例
组合模式,如同一枚硬币的两面,拥有独特的优势,同时也存在其局限性。它带给我们的,是对复杂对象层次结构的清晰定义和便捷管理,也是对代码复杂度的极大降低。然而,我们也要看到,它的设计复杂,对客户端的理解和使用有一定的要求。同时,组合模式也并不能完全满足“单一职责原则”,在一定程度上增加了系统的复杂性。然而,这并不妨碍我们对组合模式的应用和探索。因为在很多情况下,我们需要表示对象的部分-整体层次结构,希望用户忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象。在这种情况下,组合模式无疑是我们的首选。原创 2024-02-29 18:30:00 · 2021 阅读 · 0 评论 -
【重温设计模式】装饰模式及其Java示例
在我们的编程世界中,有一种设计模式叫做装饰模式,它以一种独特的方式赋予了代码更多的灵活性。装饰模式是一种结构型设计模式,它允许我们在运行时动态地为对象添加新的行为。这就像是我们在装饰一个房间时,可以随意添加或更换装饰品,而不需要对整个房间进行改造。装饰模式的特点是,它可以保持代码的清晰和简洁,同时提供了强大的扩展性。这种模式在很多场景中都有应用,比如在Java的IO流中,我们就可以看到装饰模式的影子。@Override在上面的Java代码示例中,我们定义了一个基类OneMore和一个装饰器类。原创 2024-03-01 10:46:34 · 1231 阅读 · 0 评论 -
【重温设计模式】外观模式及其Java示例
在编程世界中,设计模式就如同自然界的法则,是一种反复出现在各种情况下的通用解决方案。设计模式可以分为创建型、结构型和行为型三大类,每一类都有其独特的应用场景和解决问题的方式。今天,我们要重点解析的是结构型设计模式中的一员——外观模式。外观模式,有时也被称为"门面模式",是一种提供了一个统一的接口,用来访问子系统中的一群接口的模式。它定义了一个高层接口,使得子系统更容易使用。换句话说,外观模式就像是一个简洁的控制面板,隐藏了复杂的内部实现,让使用者只需通过简单的操作即可完成复杂的任务。原创 2024-03-01 12:42:09 · 1587 阅读 · 0 评论 -
【重温设计模式】享元模式及其Java示例
在编程世界中,我们常常面临着如何有效管理系统资源的挑战。这就好比我们在生活中,面对有限的物质资源,如何做到既满足需求又节约使用,是一门艺术。在设计模式中,有一种模式,恰如其分地解决了这个问题,那就是享元模式。享元模式,源自英文Flyweight Pattern,是一种用于性能优化的模式,其核心思想是共享对象,以减少系统中对象的数量,从而减少系统内存的使用,提高系统的性能。这种模式的名称来源于国际象棋中的棋子,棋子虽然有多个,但其本质上的属性都是相同的,只是位置不同,这就是享元模式的精髓。原创 2024-03-02 18:00:00 · 1154 阅读 · 0 评论 -
【重温设计模式】代理模式及其Java示例
在本文中,我们深入探讨了代理模式的概念、特点、优缺点以及适用场景。我们通过一个Java示例详细演示了如何实现代理模式,并对其进行了深入的分析。我们看到,代理模式可以帮助我们将复杂的业务逻辑和实际的操作对象进行解耦,使得代码更加模块化,更易于维护和扩展。同时,代理模式也有其缺点,比如可能会增加系统的复杂性,需要在代理类中添加大量的适配代码。然而,设计模式并非银弹,我们不能一概而论地认为某一种设计模式就是最好的。在实际的软件开发中,我们需要根据具体的需求和场景,灵活地选择和使用设计模式。原创 2024-03-02 18:30:00 · 1158 阅读 · 0 评论 -
【重温设计模式】职责链模式及其Java示例
在开发过程中,我们经常会遇到这样的问题:一个请求需要经过多个对象的处理,但是我们并不知道具体由哪个对象来处理,或者说,我们希望由接收到请求的对象自己去决定如何处理或者是将请求传递给下一个对象处理。这种情况下,我们可以使用一种被称为"职责链模式"的设计模式来解决这个问题。职责链模式,也被称为链式处理模式,它是一种行为型设计模式,其主要思想是让多个对象都有机会处理请求,从而解耦了请求的发送者和接收者。在这个模式中,请求会从链条的一端开始,沿着链条逐个传递,直到有一个对象处理它为止。原创 2024-03-03 18:00:00 · 785 阅读 · 0 评论 -
【重温设计模式】命令模式及其Java示例
在我们的编程世界中,设计模式如同一盏指路明灯,它们是前人智慧的结晶,为我们照亮了解决复杂问题的路径。其中,命令模式是一种行为设计模式,其主要的目标是将操作封装到对象中。这种模式的一个显著特点是,它将请求的发送者和接收者解耦,使得发送者不直接操作接收者。命令模式的核心在于抽象出一个命令接口,这个接口定义了执行操作的方法。然后,我们可以创建具体的命令类,这些类实现了命令接口,并持有接收者的引用,以便在需要的时候调用接收者的方法。原创 2024-03-03 18:30:00 · 1159 阅读 · 0 评论 -
【重温设计模式】解释器模式及其Java示例
在这篇文章中,我们深入地探讨了解释器模式,从它的定义、实现到优缺点,我们都进行了详细的讨论。解释器模式是一种强大的设计模式,它为我们提供了一种解释和执行特定语言的有效方法。然而,正如我们在文章中所强调的,解释器模式并非万能的。在某些情况下,它可能并不适用,或者说,它可能不是最优的解决方案。这就引出了一个值得我们深思的问题:在面对复杂的设计问题时,我们应该如何选择合适的设计模式?我们是否应该盲目地追求设计模式,还是应该根据实际情况,灵活地应用和组合各种设计模式?原创 2024-03-06 12:04:14 · 918 阅读 · 0 评论 -
【重温设计模式】迭代器模式及其Java示例
在编程领域,迭代器模式是一种常见的设计模式,它提供了一种方法,使得我们可以顺序访问一个集合对象中的各个元素,而又无需暴露该对象的内部表示。你可以把它想象成一本书,你不需要知道这本书是怎么印刷的,你只需要从第一页开始,一页一页地翻阅。这就是迭代器模式的魅力所在。迭代器模式的重要性不言而喻。在我们日常编程中,经常需要对一些集合对象进行遍历操作,如果没有迭代器模式,我们可能需要直接操作这些集合对象的内部结构,这不仅会增加编程的复杂性,还可能引发各种潜在的问题。原创 2024-03-07 19:08:34 · 1283 阅读 · 0 评论 -
【重温设计模式】中介者模式及其Java示例
正如我们在生活中的中介一样,程序设计中的中介者模式扮演着协调与调度的角色,将一系列复杂的交互关系简化,降低了系统的耦合度,提升了代码的可维护性。然而,正如人们对生活中的中介存在着褒贬不一的看法,中介者模式也并非完美无缺。当中介者的职责过大,它可能会变得复杂而庞大,难以维护。那么,我们在设计和编程时,应如何看待和使用中介者模式呢?我认为,这需要我们具备一种审视问题和解决问题的平衡视角。中介者模式的引入,无疑可以帮助我们简化复杂的交互关系,但同时我们也不能忽视它可能带来的问题。原创 2024-03-08 15:53:13 · 964 阅读 · 0 评论 -
【重温设计模式】备忘录模式及其Java示例
在软件设计的世界中,备忘录模式是一种行为设计模式,它的主要作用是保存对象的当前状态,以便在将来的某个时间点,可以将对象恢复到这个保存的状态。这种模式的命名源于生活中的备忘录,我们常常用它来记录一些重要的信息,以防忘记。在编程中,备忘录模式的重要性不言而喻。想象一下,你正在编写一个复杂的程序,用户可能会进行一系列的操作,然后突然想要撤销某个操作。如果没有备忘录模式,你可能需要手动跟踪用户的每一个操作,然后编写复杂的代码来撤销这些操作。原创 2024-03-08 15:53:22 · 1083 阅读 · 0 评论 -
【重温设计模式】观察者模式及其Java示例
观察者模式是一种强大的设计模式,它能够帮助我们在系统中实现松耦合的对象间通信。通过这种模式,我们可以使得一个对象的状态变化能够通知到其他的对象,而不需要这些对象之间存在直接的联系。这样,我们就可以实现对象间的动态交互,使得系统更加灵活和可扩展。但是,我们也需要注意,观察者模式并不是万能的。在某些情况下,它可能会导致过度通信,或者造成系统的循环依赖。因此,我们在使用观察者模式时,需要仔细考虑其适用性,确保它能够帮助我们解决问题,而不是引入新的问题。我们可能会遇到许多需要使用观察者模式的场景。原创 2024-03-18 18:30:00 · 1412 阅读 · 0 评论 -
【重温设计模式】状态模式及其Java示例
在这个编程的海洋中,状态模式就像一艘小船,它能够根据风向(状态)改变航向(行为),让我们的代码更加清晰、易于理解和维护。它是我们处理复杂对象状态转换,减少条件语句的重要工具。但是,我们也要注意,每一个状态都对应一个状态类,这可能会导致状态类的数量过多,增加系统的复杂性。因此,我们在使用状态模式时,既要看到它的优点,也要注意它的缺点,恰如其分地使用,才能真正提高我们的代码质量。在我们的编程生涯中,我们会遇到各种各样的设计模式,就像在海洋中遇到的各种各样的风向。原创 2024-03-19 11:57:46 · 1672 阅读 · 0 评论 -
【重温设计模式】策略模式及其Java示例
生活充满了选择,而这些选择往往会塑造我们的命运。策略模式就是这样一种设计模式,它帮助我们在面对多种算法或策略时,能够做出灵活的选择,而无需改变代码的结构。这种设计模式在很多实际的开发场景中都发挥了重要的作用。策略模式的优点是显而易见的,它可以避免使用多重条件选择语句,提高算法的复用性和灵活性。然而,它也有其缺点,主要是客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这无疑增加了客户端的复杂性,尤其是在策略类数量较多的情况下。然而,我们要明白,没有哪一种设计模式是完美的,它们都有自己的优点和缺点。原创 2024-03-20 18:30:00 · 1875 阅读 · 0 评论 -
【重温设计模式】模板方法模式及其Java示例
模板方法模式并非万能的,它只是我们手中的一种工具,适合于解决一类特定的问题。在面对复杂的软件设计问题时,我们不能一味地追求设计模式的应用,而应该从实际需求出发,理解问题的本质,然后选择最适合的解决方案。有时候,简单直接的代码可能比复杂的设计模式更加有效。模板方法模式的优点在于它可以将相同的操作流程抽象出来,形成一个通用的模板,然后让具体的操作继承这个模板,并根据需要重写其中的某些步骤。这样做可以提高代码的复用性,让代码的结构更加清晰,更易于理解和维护。原创 2024-03-21 12:00:00 · 968 阅读 · 0 评论 -
【重温设计模式】访问者模式及其Java示例
访问者模式,就像一个开放的博物馆,它接受各种访问者的参观和操作,同时保持自身的稳定和完整。这种模式的灵活性和可扩展性,使得我们可以在不改变数据结构的前提下,添加新的操作,增强了系统的适应性和生命力。然而,正如同一枚硬币的两面,访问者模式的优点同时也是其缺点。它的开放性可能会破坏数据结构的封装性,使得数据结构的内部细节暴露给访问者,增加了数据的风险。同时,如果数据结构发生改变,所有的访问者都可能需要修改,增加了代码的维护难度。因此,是否使用访问者模式,需要我们根据实际的需求和条件,进行深思熟虑和权衡。原创 2024-03-22 12:00:00 · 889 阅读 · 0 评论