自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 责任链模式:构建一条责任链去处理不同级别的日志信息

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,在有多个对象(处理者)都可以接收请求的情况下,允许你将多个对象连接成一条处理链,请求沿着处理链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。这种方式在处理一系列请求方面,提供了更灵活、可扩展的解决方案,同时避免了请求发送者和接收者之间的紧密耦合。

2023-06-15 15:44:56 913 24

原创 代理模式:一文彻底搞懂静态代理和动态代理

代理模式(Proxy Pattern)是一种结构型设计模式,它的概念很简单,它通过创建一个代理对象来控制对原始对象的访问。代理模式主要涉及两个角色:代理角色和真实角色。代理类负责代理真实类,为真实类提供控制访问的功能,真实类则完成具体的业务逻辑。这样,当我们不方便或者不能直接访问真实对象时,可以通过代理对象来间接访问。使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象。代理模式的原理是将真实类的功能封装在代理类中,最基本的方式就是创建一个代理类,代理类实现和真实类相同的接口,并且在代理类中引用真

2023-06-11 08:00:00 10571 41

原创 享元模式:减少内存占用的诀窍

享元模式是一种非常实用的设计模式,它的思想很简单,就是把一些可以共享的对象只创建一份,放入到缓存池中,供业务方引用。这样做可以大大减少对象的创建开销,减少内存中相似或相同对象的数量,减少内存占用。在java源码中也有很多享元模式的思想体现,如String的字符串常量池,Integer包装类中的IntegerCach,以及各种连接池,线程池等技术。我们在日常开发过程中,可以结合上下文场景,灵活运用享元模式,但需要注意线程安全性和共享池的管理。欢迎大家在评论区留言交流,我们下次再见!👋。

2023-06-08 14:38:47 1730 39

原创 外观模式详解:轻松搞定复杂子系统

外观模式(Facade Pattern)是一种结构型设计模式,它为多个子系统中的操作提供一个统一的高层接口,用于访问复杂子系统的功能。其核心思想是通过一个外观类将子系统的复杂操作进行封装,客户端只需与外观类进行交互,无需了解子系统的具体操作细节。这大大简化了客户端的使用,同时降低了客户端和子系统的耦合度。通俗的讲,我们要实现一个功能,可能需要调用一个子系统中的多个操作,或者组合不同子系统中的操作。

2023-06-01 07:30:00 791 57

原创 装饰器模式揭秘:我用装饰器给手机集成了ChatGPT

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在不修改原有类结构的情况下,给一个对象动态添加额外的职责。通常情况下,扩展一个类的功能我们首先会想到用继承方式来实现,但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。而装饰器模式是使用组合取代继承,通过组合可以让类的扩展更加灵活多变。抽象构件(Component):定义一个抽象接口以规范准备接收附加责任的对象。具体构件(ConcreteComponent):实现抽象构件,为抽象构建添加基本的职责。

2023-05-30 22:58:18 1379 44

原创 Java组合模式:构建多层次公司组织架构

组合模式(Composite Pattern),又叫做“部分-整体”模式,是一种结构型设计模式,它允许将对象组织成树状结构,以表示“部分-整体”的层次结构。在这种结构中,可以将相同操作应用于部分和整体,从而实现对单个对象和组合对象的一致性处理。怎么理解单个对象和组合对象,比如一颗倒置的节点树,其中的叶子节点就是单个对象,每个分支节点和其下的所有子节点共同构成组合对象。组合模式一般包含以下角色:抽象构件,叶子构件,组合构件

2023-05-27 08:00:00 3198 36

原创 桥接模式解密:跨越鸿沟,桥接抽象与实现

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们都可以独⽴的变化。其核心思想就是解耦,在面向对象编程中,抽象和实现是通过继承关系来实现的,但这种关系是静态的,不能在运行时动态改变,而桥接模式是通过组合关系来取代继承关系,从而实现抽象部分和实现部分之间的解耦,提高系统的灵活性和可维护性。对应现实生活,它把一件事物分成两个维度,这两个维度可以独立进行扩展,维度之间通过桥接进行关联。比如现实生活中的支付场景,要完成一次支付,首先你要考虑使用哪种支付平台,用微信支付还

2023-05-26 00:27:17 902 46

原创 适配器模式:一招搞定接口不兼容

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口,使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。通俗来讲,就是通过适配器来连接两个不兼容的接口,让客户端通过调用一个通用的接口,而间接实现对其他功能接口的调用。打个形象的比喻,适配器就好比我们生活中的三充数据线,可以适配不同的充电接口。

2023-05-24 09:01:16 1158 72

原创 Java原型模式详解:克隆人案例【深浅克隆】

原型模式(Prototype Pattern)属于创建型设计模式,它的核心思想是通过克隆一个已经存在的对象(原型)来返回新的对象,而不是通过实例化类来创建新的对象。关于对象克隆,在Object类中已经提供了相应的方法clone(),我们只需要调用即可。这种方式在某些场景下,能够大大提高对象创建的效率。Java中的原型模式实现很简单,只需要在需要被复制的对象上实现`Cloneable`接口,并且重写Object中的clone方法即可。

2023-05-14 09:27:27 806 34

原创 建造者模式详解:建造随意搭配的肯德基套餐

建造者模式(Builder Pattern)是五种创建型设计模式之一,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这句话怎么理解呢:一个对象的构建过程本质上就是这个对象包含的所有成员属性的构建过程,如果对象的属性非常多,属性本身组成复杂,甚至属性之间存在关联,那么该类的构建过程就显得很麻烦,如果所有代码都定义在本类中,代码会显得很臃肿甚至条理不清,所以我们可以将类的属性构建过程独立剥离出来,用单独的一个类去承载,这个类就是建造者类。

2023-05-09 09:44:49 1780 48

原创 设计模式总纲:23种设计模式介绍

设计模式是在软件开发中,经过多年的实践和总结出来的一种解决特定问题的经验性方法。它是一种可重用的解决方案,可以帮助开发人员避免在设计软件时遇到的常见问题,提高软件的质量和可维护性。

2023-04-30 17:54:08 245 11

原创 单例模式:秒懂五种实现方式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。单例模式指的是一个类只能实例化一次,并提供全局访问点来访问该实例。在Java编程中,单例模式非常有用,因为它可以确保类只有一个实例,并且该实例可以被其他对象访问,而不需要再创建新的对象。在本文中,我们详细介绍了Java单例模式的设计原理、几种典型的实现方式以及优缺点分析。单例模式是一种非常实用且常用的设计模式,它可以帮助我们提高代码的可读性和可维护性,节省系统资源,提高性能。

2023-04-30 17:50:40 744 30

原创 抽象工厂模式详解

抽象工厂模式(Abstract Factory Pattern)也是一种创建型设计模式,它提供了一种创建一系列相关或者相依赖对象的工厂接口(超级工厂),不同类型的工厂再去实现这个抽象工厂,最后还可提供一个工厂创造者类,通过传入工厂类型参数来创建具体工厂。它是对工厂方法模式的扩展,核心思想是将工厂本身也抽象化,其主旨是围绕一个超级工厂或中心工厂去创建其他工厂,这个超级工厂又称为其他工厂的工厂。它与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级;而抽象工厂模式则是针对的多个产品等级,即一个产品族。

2023-04-30 17:47:26 2092 3

原创 工厂方法模式详解:模拟实现水果加工厂

工厂方法模式(Factory Method Pattern),是一种创建型设计模式,是Java中最常用的设计模式之一。它定义了一种创建对象的工厂接口,让其子类决定实例化哪个对象,这是对多态性的最佳阐述。对比简单工厂模式,在工厂方法模式中,不再由一个单独的工厂类来负责所有产品的创建,而是将具体产品的创建交给具体的工厂子类来完成。核心思想是将对象的创建和使用分离,提高代码的可扩展性和可维护性。

2023-04-30 17:42:48 395 2

原创 简单工厂模式

简单工厂模式(Simple Factory Pattern)属于类的创建型模式,又叫静态工厂方法模式(Static Factory Method Pattern),但不属于23种GOF设计模式之一。它提供了一个简单的工厂类来创建不同产品类的实例,这些产品类通常都具有共同的父类或者实现了共同的接口。它通过将对象的创建过程封装在工厂类中,使得客户端可以通过调用工厂类的静态方法来创建不同类型的对象。

2023-04-30 17:36:02 99 1

原创 AI智能编程工具Cursor使用介绍

这是一款为使用人工智能编程而构建的编辑器,集成GPT-4,拥有强大的AI代码生成能力,它可以根据你的需求,自动生成代码,分析代码,优化代码,并可以基于某个代码片段和你展开讨论。本文详细介绍了Ai编辑器Cursor的使用方式,帮助大家快速了解并上手。需要注意的是,目前cursor仍然是免费测试版本,目前还在快速迭代中,如果生成的代码不符合你的要求,你可以换一种表述重新生成结果,这一点和ChatGPT使用不同的提示词生成不同的结果是一样的。

2023-04-30 09:03:25 4668 4

原创 Lambda表达式和函数式接口详解

Lambda表达式就是一个匿名函数,且可以作为一个函数的参数去传递,本质上Lambda表达式是匿名内部类的一种改写形式,可以看做一种接口类型....本文详细介绍Lambda表达式的改写原理,常见语法糖,以及四种通用的函数式接口,快来看看吧。

2023-04-19 15:08:40 636 27

原创 汗,你还在被老教程中java接口的特征误导吗?

java接口升级啦,java8之后添加了默认方法,静态方法,私有方法,这些你都了解了吗,一起来看看吧

2023-04-14 23:25:55 149 8

原创 一文教你用好Optional类,再也不怕空指针异常了

Optional是一个容器对象,可以往里面放置一个null值或者非null值。如果值为null,则返回一个空对象。如果值不为null,isPresent()将返回true,get()则获取该值。

2023-04-02 13:40:55 1243 2

原创 Redis快速上手并应用,看这篇就够了

详细讲解redis的五种基本数据类型,以及shell命令行对五种类型数据的增删改查操作案例,以及jedis客户端编程实战。

2023-03-25 11:30:41 302 4

原创 MongoDB快速入门到精通,看这篇就够了

mongodb核心概念讲解,应用场景介绍,与sql方式区别对比等,并学习如何使用shell命令操作mongodb,以及使用Java进行CRUD操作,最后带你了解常见三种集群架构,以及生产环境真实部署案例。

2023-03-14 21:59:48 1163 9

空空如也

空空如也

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

TA关注的人

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