Java设计模式
文章平均质量分 76
晓风残月Lx
今宵酒醒何处,杨柳岸,晓风残月。
展开
-
Gof23设计模式之状态模式
状态模式就是对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。原创 2023-09-15 08:17:21 · 543 阅读 · 0 评论 -
Gof23设计模式之责任链模式
责任链模式又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。原创 2023-09-11 17:53:52 · 674 阅读 · 0 评论 -
Gof23设计模式之命令模式
命令模式将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。原创 2023-09-11 17:36:01 · 448 阅读 · 0 评论 -
Gof23设计模式之策略模式
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。原创 2023-09-05 20:18:20 · 733 阅读 · 0 评论 -
Gof23设计模式之模板方法模式
模板方法模式是定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。原创 2023-08-14 11:13:01 · 836 阅读 · 0 评论 -
Gof23设计模式之享元模式
运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。原创 2023-08-07 16:30:00 · 124 阅读 · 0 评论 -
Gof23设计模式之组合模式
组合模式又名部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。原创 2023-08-06 10:11:36 · 728 阅读 · 0 评论 -
Gof23设计模式之外观模式
外观模式又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。原创 2023-07-27 13:32:08 · 646 阅读 · 0 评论 -
Gof23设计模式之桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。它的核心思想就是将一个大类或一系列紧密关联的类拆分成两个独立的抽象和实现部分,以便能够更加灵活地扩展和变化。原创 2023-07-10 22:38:29 · 499 阅读 · 0 评论 -
Gof23设计模式之装饰者模式
装饰者模式指在不改变现有对象结构的情况下,动态地给对象增加一些职责(即增加其额外功能)的模式。装饰者模式在JDK源码中的应用。原创 2023-07-05 09:02:05 · 189 阅读 · 0 评论 -
Gof23设计模式之适配器模式
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。原创 2023-07-03 19:41:42 · 538 阅读 · 0 评论 -
gof23设计模式之代理模型
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理类在编译期就生成,而动态代理代理类则是在Java运行时态生成。动态代理有分有JDK代理和CGlib代理两种。原创 2023-07-02 15:43:42 · 278 阅读 · 0 评论 -
Gof23设计模式之建造者模式
建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。原创 2023-06-27 10:57:32 · 620 阅读 · 0 评论 -
Gof23设计模式之原型模式
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。原创 2023-06-26 09:09:50 · 509 阅读 · 0 评论 -
Gof23设计模式之工厂方法模式和抽象工厂模式
工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。原创 2023-06-20 01:45:00 · 265 阅读 · 2 评论 -
Gof23设计模式之简单工厂/静态工厂模式
在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所以说,工厂模式最大的优点就是:解耦。简单工厂模式/静态工厂模式其实不是一种设计模式,而算是一种编程思想。以下讲解使用咖啡厅点咖啡来说明。原创 2023-06-19 21:00:05 · 1335 阅读 · 0 评论 -
Gof23设计模式之单例模式(完整)
单例模式(Singleton pattern)是Java中最简单的设计模式之一。这种设计模式属于创建型模型,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。原创 2023-06-17 09:44:33 · 1301 阅读 · 0 评论 -
使用策略模式实现两种搜索Mysql和ElasticSearch7.17.x
运用策略模式来实现Mysql和ELasticSearch的搜索,根据数据库中查询出来的结果然后通过SearchEnum枚举类获取到项目中需要的策略模式(也就是mysqlStrategyImpl或者elasticsearchStrategyImpl)。原创 2023-06-08 08:47:09 · 193 阅读 · 1 评论 -
饿汉式和懒汉式
但还是有一个问题,当对象未创建时,同时多个线程执行此方法,先进入一个线程进入同步方法,JVM虚拟机对于多线程的执行很可能存在指令重排的现象,因为最里面那层并不是原子操作,他仍需要分为3步,1.分配内存空间。1.第一种正常饿汉式,在类加载的时候,就创建实例化对象,由于加载类时,天然就是线程安全,但是这种饿汉式不能防止反射破坏单例模式,也不能防止序列化破坏单例,unsafe也无法解决。2.,枚举实现,枚举元素本身就是单例对象,延迟加载 , 没有延迟加载,反射和反序列化不可以 破解,只有unsafe无法解决。原创 2022-10-23 20:44:01 · 76 阅读 · 0 评论