JAVA面试归纳_设计模式

本文深入解析了单例、简单工厂、工厂、抽象工厂、职责链和代理六种设计模式,探讨了它们在软件开发中的应用及优缺点。单例模式确保类只有一个实例,简单工厂模式分离实例化过程,工厂模式定义创建对象的接口,抽象工厂模式创建相关对象家族,职责链模式处理请求,代理模式提供代理对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单例设计模式

顾名思义,有且只有一个类实例,在一些场景下只能存在一个实例,如计数器等,单例设计模式分为两种创建模式,懒汉式和饿汉式。懒汉式:即不在系统加载时就创建类实例,而是在第一次使用时创建。饿汉式:在系统加载时就创建类实例,并保证存在类中

简单工厂设计模式

也叫作静态工厂设计模式,实际不能算作一种设计模式,它引入了创建者的概念,将实例化的代码从应用代码中抽离,在创建者类的静态方法中只处理创建对象的细节,后续创建的实例如需改变,只需改造创建者类即可,使用一个静态方法,通过接受参数的不同返回不同实体,对于新增加的产品。不修改的话无法进行扩展

工厂设计模式

定义了一个创建对象的接口,把对象的创建委托给子类,由子类来实现创建方法,可以看作是抽象工厂模式中只有单一产品的情况

抽象工厂设计模式

提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类,使对象的创建被实现在工厂接口所暴露出来的方法中

职责链设计模式:

责任链的设计模式,使用additionalFilters来依次处理request请求。additionalFilters中的每个Filter成员都承担某一项具体职责,并且每个Filter都会被执行到。 责任链条的成员执行完自己的职责后,会回调链条的处理请求方法,责任链条会找到下一个链条成员来执行职责,直到链条尾端。

代理设计模式:

代理设计模式分为静态代理和动态代理,若代理类在程序运行之前就存在,则称为静态代理,这种情况下的代理类通常都是我们在Java代码中定义的。代理类是在程序运行时创建的方式称为动态代理,这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类的函数。

未完待续
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值