Java设计模式(23种设计模式 重点介绍一些常用的)

腾讯元宝Hunyuan Java 设计模式是一套被反复验证的面向对象设计经验总结,用于解决软件设计中常见的问题(如解耦、复用、扩展等) 用于解决软件设计中常见的问题(如解耦、复用、扩展等)。它们并非具体的代码,而是一种可复用的解决方案模板。GoF(四人组)提出的。 阅读详情
  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

设计模式原则

开放封闭原则

就是对扩展开放,对原有类的修改封闭。在不影响原有类的基础上进行拓展

里氏代换原则

子类可以拓展功能,但不能修改父类原有的功能。

单一职责原则

一个类仅应该有一个引起他变化的原因。可拓展性高。

依赖倒置原则

高层模块和底层模块都应该依赖于抽象,细节应该依赖于抽象。

比如电脑内存条坏了,我们仅仅需要更换内存条就行了,而不需要把cpu也换了,类似于一种解藕的思想。

迪米特法则

一个对象应当对其他对象有尽可能少地了解,简称类间解耦。

如果两个类不必直接通信,则可以通过一个第三者去转发调用。降低耦合度。

接口隔离原则

使用多个隔离的接口,比使用单个接口要好。

常用的模式

简单工厂模式

拿经典的加减乘除来举例

  1. 我们需要先封装一个算法抽象类,定义方法。
  2. 然后定义加减乘除四个子类继承该抽象类,并实现
  3. 最后在创建一个算法工厂类,通过switch(运算符)来实现对应的算法。

抽象工厂模式

比如封装一个多数据源的访问。

  1. 新建一个接口,定义访问的方法。
  2. 然后各个数据库为其创建对应的类,实现该接口。
  3. 再定义一个工厂接口,实现对应对象创建的方法。
  4. 再定义几个类去实现该接口的方法。
  5. 可以实例化对应的工厂去使用。

工厂方法模式

还是拿经典的加减乘除来举例

  1. 我们需要先封装一个算法抽象类,定义方法。
  2. 然后定义加减乘除四个子类继承该抽象类,并实现
  3. 最后在创建一个工厂接口。
  4. 定义多种算法工厂类实现该接口,例如将基础算法归于一类,高级算法归于一类。
  5. 最后再拿一个算法工厂类通过switch(运算符)去实现对应的算法。

抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。
从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。
将工厂抽象成两层,抽象工厂 和 具体实现的工厂子类。程序员可以根据创建对象类型使用对应的工厂子类。这样将单个的简单工厂类变成了工厂集合, 更利于代码的维护和扩展。

装饰者模式

动态的给类添加一些额外的职责,就添加功能来说,该模式比生成子类更加灵活。

  1. 定义一个抽象类component
  2. concretecomponent类继承抽象类
  3. decorator继承了component的抽象类,可以从外部扩展component功能
  4. 定义具体装饰类继承decorator
  • Component(抽象构件):定义一个对象接口,以规范准备接收附加责任的对象。
  • ConcreteComponent(具体构件):实现Component接口,也就是给装饰者提供原始对象。
  • Decorator(抽象装饰者):实现Component接口,持有对另一个Component对象的引用,并定义一个与Component接口一致的接口。
  • ConcreteDecorator(具体装饰者):实现Decorator接口,给组件添加一些职责。

 

策略者模式

定义了算法策略,分别封装起来,让他们可以互相替换,不会影响到使用算法的客户。

  1. 定义一个算法抽象类
  2. 几个具体实现类
  3. 定义一个conext类,内部使用算法抽象类,实例化,并调用其的算法
  • 抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
  • 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现或行为。
  • 上下文(Context)类:是使用算法的角色, 持有一个策略类的引用,最终给客户端调用。

模板模式(很简单)

定义一个算法骨架,将一些步骤延迟到子类中,使得子类不需要改变算法结构就可以重新定义某个步骤

  1. 一个抽象类
  2. 几个实现类

代理模式

为其他对象提供一种代理以控制该对象的访问

  1. 定义一个抽象类或接口
  2. 定义一个具体实现类继承该类
  3. 再定义一个具体代理类,并在内部将上一个具体类作为成员变量

动态代理与静态代理的区别就是代理类与被代理类有没有直接继承或实现的关系。 

 

【设计模式】Java 的三种代理模式_创建代理对象的三大方式-优快云博客

责任链模式

使多个对象都有机会去处理请求,从而避免请求的发送者和接收者的关系之前的耦合。将对象链接成一个链,并通过该链条传递该请求,直到有一个对象处理他。

  1. 定义一个父接口
  2. 实现多个子类,可以实现不同内容处理
  3. 通过链条方式将他们链接起来
  4. 先从底层开始处理

java设计模式---责任链模式详解_责任链模式 java-优快云博客

 Java设计模式-责任链模式_java责任链模式-优快云博客

单例模式

保证一个类只有一个实例,并且提供一个访问他的全局访问点。

  • 将类成员变量设置为静态
  • 私有化其他构造方法,只留一个构造,且内部进行判断,如果已经实例化,则直接返回。
  • 且在成员变量加volatile关键字
  • 实例化成员变量时内部加上synchronized锁,防止并发创建多个实例。
  • 或者采用静态初始化

 代码示例

class Singleton{
    private static Singleton instance = new Singleton();
    private Singleton(){
    }
    public static Singleton getInstance(){
        return instance;
    }
 }
或者
class Singleton{
    private volatile static Singleton instance = new Singleton();
    private Singleton(){
    }
    public static Singleton getInstance(){
        if(instance==null){
            synchornized(Singleton.class){
                if(instance==null){
                    instance=new Singleton();
                }
            }
        }
        return instance;
    }
 }

创建型模式

工厂方法模式

与简单工厂方法比较类似,在简单工厂基础上进行了二次封装,让各类的职责更加明确。

还是拿经典的加减乘除来举例

  1. 我们需要先封装一个算法抽象类,定义方法。
  2. 然后定义加减乘除四个子类继承该抽象类,并实现
  3. 最后在创建一个工厂接口。
  4. 定义多种算法工厂类实现该接口,例如将基础算法归于一类,高级算法归于一类。
  5. 最后再拿一个算法工厂类通过switch(运算符)去实现对应的算法。

抽象工厂模式

比如封装一个多数据源的访问。

  1. 新建一个接口,定义访问的方法。
  2. 然后各个数据库为其创建对应的类,实现该接口。
  3. 再定义一个工厂接口,实现对应对象创建的方法。
  4. 再定义几个类去实现该接口的方法。
  5. 可以实例化对应的工厂去使用。

单例模式

保证一个类只有一个实例,并且提供一个访问他的全局访问点。

  • 将类成员变量设置为静态
  • 私有化其他构造方法,只留一个构造,且内部进行判断,如果已经实例化,则直接返回。
  • 且在成员变量加volatile关键字
  • 实例化成员变量时内部加上synchronized锁,防止并发创建多个实例。
  • 或者采用静态初始化
class Singleton{
    private static Singleton instance = new Singleton();
    private Singleton(){
    }
    public static Singleton getInstance(){
        return instance;
    }
 }
或者
class Singleton{
    private volatile static Singleton instance = new Singleton();
    private Singleton(){
    }
    public static Singleton getInstance(){
        if(instance==null){
            synchornized(Singleton.class){
                if(instance==null){
                    instance=new Singleton();
                }
            }
        }
        return instance;
    }
 }

建造者模式

将一个复杂对象的构建和他的表示分离,同样的建造过程可以创建不同的表示

比如产品类

  1. 先写一个抽象建造者类,把抽象方法都定义好
  2. 然后写几个具体建造者类继承抽象类
  3. 然后指导者类,内部构造去写一个调用抽象类的创建人的各个方法。

可以实现客户并不知道具体的建造过程

原型模式

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

  1. 封装一个抽象类实现cloneable接口,重写clone方法。
  2. 创建具体原型类继承抽象类

结构型模式

适配器模式

将一个类的接口转换为客户需要的另一个接口。该模式使原本接口不兼容而不能一起工作的类可以一起工作。

  1. 首先定义两个接口
  2. 然后定义一个适配器类继承并重写其中方法,并且定义另一个类作为变量,在重写方法中用到。

装饰器模式

动态的给类添加一些额外的职责,就添加功能来说,该模式比生成子类更加灵活。

  1. 定义一个抽象类component
  2. concretecomponent类继承抽象类
  3. decorator继承了component的抽象类,可以从外部扩展component功能
  4. 定义具体装饰类继承decorator

代理模式

为其他对象提供一种代理以控制该对象的访问

  1. 定义一个抽象类或接口
  2. 定义一个具体实现类继承该类
  3. 再定义一个具体代理类,并在内部将上一个具体类作为成员变量

外观模式

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,该接口使得该子系统更加容易使用。

  1. 定义四个子系统类
  2. 定义一个外观类,将四个子系统类全部实例化并写方法。

桥接模式

将抽象部分和实现部分相分离,使得他们可以独立的变化

  1. 定义一个抽象类
  2. 几个具体实现类
  3. 另一个抽象类 内部依赖第一个抽象类
  4. 具体类继承该抽象类

组合模式

将对象组合成树形结果表示部分-整体结构。使得用户对单个对象和组合对象的使用具有一致性。

  1. 定义一个component
  2. 定义两个子类leaf和composite

享元模式

运用共享技术有效的支持大量细粒度的对象

  1. 定义一个抽象类,几个具体类
  2. 再定义一个抽象工厂,内部依赖抽象类

行为型模式

策略模式

定义了算法策略,分别封装起来,让他们可以互相替换,不会影响到使用算法的客户。

  1. 定义一个算法抽象类
  2. 几个具体实现类
  3. 定义一个conext类,内部使用算法抽象类,实例化,并调用其的算法

模板方法模式

定义一个算法骨架,将一些步骤延迟到子类中,使得子类不需要改变算法结构就可以重新定义某个步骤

  1. 一个抽象类
  2. 几个实现类

观察者模式

定义了一种一堆多的关系,让多个观察者同时监听某个对象,该对象发生变化,会通知观察者对象去更新自己。

  1. 定义通知者抽象类接口,内部使用了观察者类
  2. 定义具体通知者
  3. 定义观察者抽象类接口,内部有更新方法
  4. 几个具体观察者类

迭代子模式

提供一种方法顺序访问一个聚合对象的各个元素,不暴露该对象的内部表示。

  1. 定义一个聚合抽象类
  2. 具体实现类
  3. 定义一个iterator迭代器抽象类
  4. 再定义一个具体类
  5. 就可以实现使用该迭代器去遍历具体聚合类

责任链模式

使多个对象都有机会去处理请求,从而避免请求的发送者和接收者的关系之前的耦合。将对象链接成一个链,并通过该链条传递该请求,直到有一个对象处理他。

  1. 定义一个父接口
  2. 实现多个子类,可以实现不同内容处理
  3. 通过链条方式将他们链接起来
  4. 先从底层开始处理

命令模式

将请求封装为对象,用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持撤销的操作。

  1. 定义一个命令接口,内部调用一个接收者类
  2. 定义接收者
  3. 定义具体命令类
  4. 定义invoker类,内部调用命令类
  5. 实例化接收者,实例化命令
  6. 实例化invoker,执行方法。

备忘录模式

在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存该状态,这样以后就可将该对象恢复到原先保存的状态。

  • 发起人 调用备忘录
  • 备忘录
  • 管理类 管理备忘录

状态模式

当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类

  • 状态抽象类
  • 几个具体状态类
  • 一个上下文类

访问者模式

表示一个作用于某对象的元素的操作,他可以使在不改变元素情况下定义作用与这些元素的新操作

  • 访问者
  • 元素类
  • 对象结构类

中介者模式

用一个中介来封装交互的动作。

  1. 定义一个抽象人 内部含中介
  2. 再定义两个具体人
  3. 然后定义一个中介
  4. 定义几个具体中介
  5. 通过实例化中介和人,给人设置相同中介就可以交互

解释器模式

给一个语言,定义他的一种表示,并定义一个解释器,用于解释

  • 上下文类
  • 抽象表达类
  • 具体实现

推荐书籍:大话设计模式,清华出版社的,写的真的很不错!

Dataworks实现接口调用 在本地linux虚拟机(不用在意linux版本),安装Anaconda后配置对应的虚拟环境,将虚拟环境的python包整体打包(路径一般为:~/anaconda/envs/env_name/lib/pyyhon3.7/site-packages):上传资源,将第三方包上传至dataworks(注意:所有上传文件均要打包上传,直接上传文件会乱码导致无法使用):PyODPS,其中PyODSP2的python版本为2.7,PyODSP3的python版本为3.7。:在PyODPS中引用资源,然后开发接口。 阅读详情

相关推荐

Hypermesh联合ABAQUS—Sets的建立和编辑

打开part copy对话框在对话框的最上面位置可以输入copy后的名称,然后将最下面的Separate disconnected regions into parts(将不连续的区域分割成parts)选项的前面方框勾选上。打开abaqus软件界面,File→import→model,将file filter选为inp格式,找到要导入的有限元文件,单击OK导入文件。HyperWorks新建Set时,会在Model Browser显示,打开Create Set对话框显示详细信息。快捷键,高亮set的内容。

动力资料屋的博客 1289

一文讲完Java常用设计模式(全23种)

设计模式是软件开发中非常有用的工具,可以提高代码的可重用性和可维护性,同时也可以提高开发人员的工作效率。 设计模式有几种类型,包括创建型、结构型和行为型模式。 创建型模式用于以灵活和高效的方式创建对象。包括Singleton模式、工厂模式和抽象工厂模式等。 结构型模式用于组合类和对象以形成更大的结构。包括适配器模式、桥接模式和装饰器模式等。 行为型模式用于处理类或对象之间的通信和控制流。包括观察者模式、策略模式和模板方法模式。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 4万+

Veritas NetBackup 10.1 Windows安装指南:从账户配置到完整部署

本文详细介绍了Veritas NetBackup 10.1在Windows系统上的完整安装流程,从账户配置到部署验证。重点讲解了创建专用服务账户、安装组件选择、许可证输入等关键步骤,并提供了常见问题排查和进阶配置建议,帮助用户顺利完成企业级备份解决方案的部署。

weixin_26765287的博客 452

JAVA设计模式——23种设计模式详解

设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。

每日一记,每周一结。 3364

从CORDIC到DDS:手把手拆解《Verilog传奇》第9章的实战项目(附可跑通的代码)

本文详细解析了如何从CORDIC算法到DDS系统的完整实现过程,基于《Verilog传奇》第9章的实战项目,提供了可运行的Verilog代码。内容涵盖CORDIC算法的硬件实现、DDS系统架构设计、完整系统集成与验证,以及实际部署中的性能调优技巧,适合数字IC和FPGA开发者深入学习。

weixin_42623010的博客 413

构建多节点AI代理网络:OpenClaw协同框架与实战部署指南

在分布式系统与AI代理技术领域,多节点协同是提升智能体能力与扩展性的核心挑战。其原理在于通过设计清晰的通信协议与数据同步机制,使分散的智能体能够共享状态、知识与技能,从而实现1+1>2的群体智能。这一技术价值在于突破了单点AI的能力上限,为构建复杂、鲁棒且可扩展的自动化系统提供了基础。典型的应用场景包括跨设备任务编排、企业级工作流自动化以及大规模AI代理集群的管理。本文聚焦于OpenClaw这一开源AI代理框架,深入探讨如何利用模块化设计(如网状网络与任务控制中心)实现记忆共享与统一调度,解决多网关协同中的

weixin_42521032的博客 298

JAVA中23种设计模式

一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式: 共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式: 共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式: 共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式

qw_0214的博客 1617

【CT/电镜 重建教程 1.1】层析成像的精确实空间迭代重建算法(RESIRE)

在此,我们报告了RESIRE算法的发展用于准确的断层重建。与实空间迭代算法相比,RESIRE使用傅里叶切片定理或Radon变换作为正向投影,使用线性变换作为反向投影,两者都具有高精度。与EST和GENFIRE相比,RESIRE是一种实空间迭代算法,可以在并行计算中实现快速运行时间。

2401_87064292的博客 1059

Java中23种设计模式

Java中23种设计模式,包括简单介绍,适用场景以及优缺点等

呜呜老司机的博客家园 9万+

5、Raspberry Pi CPU架构与多线程编程详解

本文详细介绍了Raspberry Pi的CPU架构(包括ARMv6Z、ARMv7-A和ARMv8-A),通过/proc/cpuinfo解析硬件信息,并深入探讨了多线程编程的核心技术。内容涵盖pthread库的使用,如线程创建、属性设置、等待与分离、线程同步机制(互斥锁),以及实际应用场景如多媒体处理和网络服务。同时强调了线程安全、死锁预防和资源管理等关键注意事项,帮助开发者在Raspberry Pi上构建高效稳定的多线程应用。

sre5engineer的博客 93

基于毫米波生物感知雷达+STM32设计的独居老人居家监护系统(微信小程序)(192)

当前基于STM32设计的独居老人居家监护系统为独居老人提供一种简便、实时的健康监护服务。该系统通过集成多种传感器和功能模块,能够实时监测老人的生理指标、姿态以及室内环境状况,并通过微信小程序远程显示数据,当出现异常情况时及时发出报警提醒。

1万+

Java七种常用设计模式

抽象工厂模式(Abstract Factory Pattern)是Java中常用的一种创建型设计模式,它提供了一种创建一系列相关或相互依赖的对象接口,而无需指定它们具体的类。抽象工厂模式和工厂方法模式类似,不同之处在于抽象工厂模式中工厂类不单独生产一种产品,而是生产一系列相关的产品。定义抽象产品类:void use();定义具体产品类:System . out . println("使用ProductA1");System . out . println("使用ProductA2");

qq_45196093的博客 2万+

创新引入HAttention模块:提升YOLOv8小目标检测精度【YOLOv8】

YOLOv8在前几个版本的基础上进行了多项优化,特别是在模型的速度和精度上做了较大改进。改进的backbone:引入了更加高效的骨干网络(backbone)设计,如更深的网络层和更高效的特征提取模块。增强的Neck模块:使用了PANet等机制来更好地融合不同尺度的特征,增强了多尺度目标检测能力。增强的Head模块:包括多头检测头,以便针对不同大小的目标进行更精细的预测。尽管如此,YOLOv8仍面临着在小目标检测精度上不如大型目标的挑战,尤其在复杂背景或高密度目标环境下。

博客 2768

23种设计模式

Java中的23种设计模式: Factory(工厂模式) - 熟悉 Builder(建造模式) Factory Method(工厂方法模式) Prototype(原始模型模式) Singleton(单例模式)- 熟悉 Facade(门面模式) Adapter(适配器模式)- 熟悉 Bridge(桥梁模式) Composite(合成模式) Decorator(...

漫步云端 122

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java23种常用设计模式

http://haolloyin.blog.51cto.com/1177454/d-2     设计模式:模式是一种问题的解决思路,它已经适用于一个实践环境。并且可以适用于其他环境。 设计模式的分类:分布式编程模式,用户界面模式,数据模型模式三大类。 设计模式的作用:设计的重用;                         为设计提供共同的词汇,每个模式名就是一个设计词汇,其概念

罗罗的专栏 691

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Java设计模式实战精讲】:23种经典模式全解析与真实项目应用案例

掌握Java设计模式核心方法,解决复杂系统设计难题。通过23种经典模式详解与真实项目中的java设计模式案例解析,涵盖适用场景与关键优势,提升代码可维护性与扩展性,值得收藏学习。

AlgoInk的博客 896

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

设计模式(二)结构型模式

Java 中一般认为有23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。 下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模...

huopusa的博客 1万+

17_反射和设计模式

b. load(InputStream in) / load(Reader in):自动将流指向文件内容进行加载,一行代表一个集合元素, 自动以"=" 、":"进行拆分,符号 左侧作为键的内容,右侧作为值的内容。(2) 类对象:类加载的产物,封装了一个类的所有信息(包名、类名、父类、接口、属性、方法、构造方法)。(3) 反射:通过反射可以获取一个类的 类对象,从而获取该类的信息,直接通过类对象进行一系列操作。(1) 类的对象:基于定义好的一个类,创建该类的实例,即利用 new 创建的实例就为类的对象。

2301_82287220的博客 482

luogg_java学习_08_设计模式_API

这篇博客总结了1天整,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 设计模式 在长期开发过程中,为了解决某些固定问题, 总结出的固定套路. 目前为止, java中的设计模式有23种, 例如: 单例模式, 适配器模式, 工厂模式, 代理模式 ... 单例设计模式 1, 正常情况下, 一个类可以创建多个对象, 但会...

Wisdom1001的博客 190

5月2日上课笔记-关于软件设计模式等

1.java软件设计模式 一共有23种设计模式: 常用: *单例设计模式 *装饰设计模式 工厂设计模式 判断两个对象是否是同一个对象:equals(); 单例设计模式(spring框架IOC,默认创建的对象都是单例的): 饿汉式: 私有化构造方法 ...

weixin_30909575的博客 167

Java 常用设计模式

声明一组用于创建不同产品的方法。

hanjie13141516的博客 762

设计模式详解

设计模式是可重用的解决方案,用于解决在软件设计中常见的问题。它们不是具体的代码,而是最佳实践的模板。通常将设计模式分为三类:创建型、结构型和行为型。实现方式: 2.2 工厂方法模式 (Factory Method) 目的:定义一个创建对象的接口,但让子类决定实例化哪个类。 案例:日志记录器、数据库连接工厂。 实现方式: 2.3 抽象工厂模式(Abstract Factory) 目的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 案例:GUI工具包,跨平台UI组件。 实现方式:

qq_33807380的博客 461

笔记

U1  1.java软件设计模式 一共有23种设计模式: 常用: *单例设计模式 *装饰设计模式 工厂设计模式 判断两个对象是否是同一个对象:equals(); 单例设计模式(spring框架IOC,默认创建的对象都是单例的): 饿汉式: 私有化构造方法 public class SingleClass { private SingleClass(){} //私有化

杜小誊 277

java platform se binary 关闭_java初中级面试框架和项目部分问题

Java框架部分1.说说Spring?Spring的核心是控制反转、依赖注入,Aop(面向切面)相当于把每个bean与bean之间的关系交给第 三方容器进行管理.2.说说SpringIOC、SpringAOP?SpringIOC ,其实就是依赖注入、控制反转。相当于把每个bean与bean之间的关系交给第三方容器管理。而这个容器就是springSpringAOP 面向切面的编程,或AOP,是一种编...

weixin_42353186的博客 620

设计模式入门:开发者必备的代码优化工具箱

设计模式是软件工程中解决常见问题的经典方案,本质上是面向对象设计原则的具体实践。其核心价值在于提供标准化的代码结构设计方案,提升代码的可维护性、扩展性和复用性。从原理上看,设计模式通过封装变化、松耦合等机制,有效管理系统复杂度。在工程实践中,工厂模式处理对象创建,观察者模式实现事件通知,适配器模式解决接口兼容问题,这些模式在框架开发、业务系统等领域广泛应用。随着技术演进,设计模式与语言特性深度融合,如JavaScript的Promise实现了异步状态模式,Python装饰器语法简化了装饰器模式实现。掌握设计

weixin_30645617的博客 295

Java 中的 23 种设计模式详解

项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

微笑听雨 7万+
上一篇: Springboot自动装配源码分析
下一篇: SpringCloud总结(springcloud alibaba)
低调$(生活)
博客等级 码龄6年 4689粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调$(生活)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值