自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 代理模式(Proxy Pattern)

代理模式是一种常用的设计模式,它允许通过代理对象来控制对其它对象的访问。在软件开发中,代理模式通常被用来在访问对象时增加一些额外的控制,或者隐藏对象的实际实现细节。代理模式的核心思想是引入一个代理对象,这个代理对象与原始对象具有相同的接口,客户端可以通过代理对象来访问原始对象。代理对象在调用原始对象的方法之前或之后可以执行一些额外的操作,例如权限检查、缓存、延迟加载等。控制访问:代理对象可以控制客户端对真实对象的访问,可以对访问进行限制、过滤或者转发。

2024-04-26 10:01:53 469

原创 状态模式(State Pattern)

状态模式是一种行为型设计模式,用于在对象的内部状态发生改变时改变其行为。它将对象的行为封装在不同的状态对象中,使得对象在不同的状态下可以有不同的行为表现。维护一个状态对象的引用,用于切换当前的状态。定义一个接口或者抽象类,封装与上下文相关的行为。实现状态接口的具体状态类,每个具体状态类都提供了不同的行为实现。状态模式将状态转换和行为封装在状态类中,使得每个状态的实现都独立,易于维护和修改。可扩展性:通过添加新的状态类,可以方便地扩展对象的行为。状态模式避免了大量的条件语句,提高了代码的可读性和可维护性。

2024-04-25 21:16:16 396

原创 策略模式(Strategy Pattern)——灵活的算法选择

策略模式是一种常用的设计模式,它可以帮助我们在软件开发中更好地组织和管理算法。在策略模式中,我们将不同的算法封装成独立的策略类,然后在运行时根据需要选择合适的策略来执行。上下文是策略模式的使用者,它负责将客户端的请求委派给具体的策略对象,并且可以在运行时动态地更换策略。策略是一个接口或抽象类,它定义了一个算法族的公共接口。不同的具体策略类实现了这个接口,每个策略类封装了一个具体的算法。具体策略是策略模式的核心,它实现了策略接口,定义了具体的算法。在运行时,上下文对象会根据需要选择合适的具体策略来执行。

2024-04-25 20:55:47 537

原创 原型模式(Prototype Pattern)

原型模式文章目录原型模式一、介绍二、深拷贝与浅拷贝三、浅拷贝与深拷贝代码对比总结一、介绍原型模式是一种常用的设计模式,用于创建对象的一种方式。它允许我们通过复制现有对象来创建新对象,而无需依赖于它们的具体类。这种模式通常用于需要创建多个相似对象的情况,以避免重复的实例化过程。在原型模式中,一个原型对象作为模板被复制来生成新的对象。这个原型对象包含了要被复制的对象的初始状态。新对象可以保持这个状态,也可以根据需要进行修改。这种模式的核心思想是通过复制现有对象来创建新对象,而不是通过实例化新对象。

2024-04-24 13:08:49 937

原创 工厂模式(Factory Pattern)

工厂模式是一种常见的设计模式,用于创建对象而不暴露对象的创建逻辑。在软件开发中,工厂模式通常用于管理对象的创建过程,特别是当对象的创建过程比较复杂,需要封装起来以便于代码的维护和扩展。工厂模式通常包括三个角色:工厂接口、具体工厂和产品工厂接口(Factory Interface):定义了一个用于创建对象的接口,其中可能包含一个或多个工厂方法,每个方法用于创建不同类型的产品对象。具体工厂(Concrete Factory):实现了工厂接口,负责创建具体的产品对象。

2024-04-23 10:17:15 1367

原创 如何完美的实现一个线程安全的单例模式?

一个类只有一个实例,旨在确保类只有一个实例,并提供全局访问点以访问该实例。唯一实例: 类只能有一个实例存在。全局访问点: 提供一个访问该实例的全局接口,以便其他类可以轻松地访问它。单例模式优缺点优点:(1)单例模式可以保证内存里只有一个实例,减少了内存的开销。(2)可以避免对资源的多重占用。(3)单例模式设置全局访问点,可以优化和共享资源的访问缺点:(1)单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。

2024-04-22 18:00:46 401

原创 IntelliJ IDEA 无限破解之法

进入idea的设置,找到plugins 鼠标移动到设置按钮,找到Manage Plugin Repositories。

2024-04-22 13:56:05 769 2

原创 JVM GC四大算法

内存效率:复制算法 > 标记清除 > 标记压缩 (时间复杂度)内存整齐度:复制 = 标记整理 > 标记清除内存利用率:标记整理 = 标记清除 > 复制算法。

2024-04-22 11:40:30 293

原创 mac 安装 nacos

如果直接使用的话使用的是集群模式,如果没有配置正确的数据库会直接报错。注意文件夹不能用空格,否则里面的脚本执行会创建文件失败。建议个人使用单机模式,执行脚本如下。

2024-04-21 23:31:15 355

原创 如何插件化地将Groovy文件加载进内存

为了方便测试,我们使用了一个接口进行模拟,实际情况可以直接使用一个普通的定义一个普通的方法进行测试/*** 逻辑处理,方便测试打印 hello world*/@Override")

2024-04-21 22:06:34 352

原创 JVM架构及组成

双亲委派机制,类一级一级往上找缓存,一直找到BootStrap classloader,类加载一定是从bootsrtrap系统类加载器开始的,如果bootstrap没有,继续找ext classloader,ext classloader如果加载不了,会去找app classloader,如果定义类自定义加载器,继续在自定义类加载器加载,再没有抛出 classNotFound。答:栈中存储的是栈帧,其实就是方法的信息,8种基本类型变量 + 对象的引用变量 + 实例的方法。栈的第一个方法为main。

2024-04-21 21:54:33 361

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除