![](https://img-blog.csdnimg.cn/2b0f5ce2cc9f4746a9219f1ad2a7e674.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java设计模式
文章平均质量分 87
Java设计模式
悬浮海
正在准备系列内容,更新较少。
展开
-
设计模式之模版方法模式与策略模式
模版方法模式、策略模式、简单工厂模式原创 2024-03-25 15:03:48 · 1343 阅读 · 0 评论 -
设计模式之不变模式
比如,一个对象的存活时间(对象创建时间和当前时间的时间差)是只读的,任何一个第三方线程都不能修改这个属性,但是这是一个可变的属性,因为随着时间的推移,存活时间时刻都在发生变化。如果父类是不变的,那么子类也必须是不变的,但实际上我们无法约束这点,为了防止子类做出一些意外的行为,这里干脆把子类都禁用了。此外,所有的元数据类、包装类都是使用不变模式实现的。由于基本数据类型和String类型在实际的软件开发中应用极其广泛,使用不变模式后,所有实例的方法均不需要进行同步操作,保证了它们在多线程环境下的性能。原创 2023-05-23 15:04:47 · 124 阅读 · 0 评论 -
设计模式之观察者模式相关、监听器模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时,会通知所有观察者对象,使它们能够自己更新自己。(在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新)观察者模式结构图:Subject类,可以翻译为主题或者抽象通知者,一般用一个抽象类或者一个接口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加、删除观察者对象 以及通知聚集里面的观察者。Con原创 2022-06-15 11:37:44 · 1600 阅读 · 0 评论 -
设计模式之代理模式-动态代理详解(JDK动态代理和CGLIB动态代理)
文章目录一、本文内容二、为什么要用代理三、jdk动态代理详解3.1、 java.lang.reflect.Proxy3.1.1、getProxyClass方法3.1.2、newProxyInstance方法3.1.3、isProxy方法3.1.4、getInvocationHandler方法3.2、创建代理:方式一步骤案例先来个接口IService创建IService接口的代理对象运行输出3.3、创建代理:方式二步骤案例3.4、案例:任意接口中的方法耗时统计3.5、Proxy使用注意四、cglib代理详解4原创 2021-09-22 13:58:27 · 334 阅读 · 0 评论 -
代理模式(静态代理、动态代理)
代理模式静态代理静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现(会被真是角色和代理角色所继承)真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作 .代码实现Rent . java 即抽象角色package com.wlw.proxy;// 抽象角色:租房, 房东与代理都要实现这个接口去完成租房功能public interface Rent { void原创 2020-11-09 15:23:03 · 244 阅读 · 0 评论 -
设计模式之桥接模式(bridge)
桥接模式(bridge)桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或者接口(Interface)模式分析:这个场景中有两个变化地维度:品牌和类型。案例代码:package com.wlw.bridge;//第一个维度 品牌public interface Brand { //品牌信息 void info();}package com.wlw.bridge;//具体的原创 2020-11-09 15:12:57 · 781 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作!角色分析目标接口:客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口。(电脑USB接口)需要适配的类:需要适配的类或适配者类。(网线)适配器:通过包装一个需要适配的对象,把原接口转换成目标对象!(转换器)案例案例:电脑插网线接口为USB接口,与网线接口不一致,所以需要一个USB网线转换器,使电脑可以上网。package com.wl原创 2020-11-09 15:08:14 · 162 阅读 · 0 评论 -
设计模式之原型模式
原型模式原型模式使用的方式就是克隆,这就要注意浅克隆和深克隆。浅克隆:v1(原型对象),v2(v2是由v1克隆出来的)里面的数据是指向的同一块内存地址,要修改的话,v1,v2都会被改动深克隆:通过v1克隆v2时,把里面的数据也克隆了一份,并分配了内存空间。原型模式之浅克隆package com.wlw.prototype.qianCopydemo01;import java.util.Date;/*原型模式的实现,就是依靠克隆,先创建出一个对象v1,通过v1 克隆出原创 2020-11-08 22:23:58 · 168 阅读 · 0 评论 -
设计模式之建造者模式
文章目录建造者模式的常规用法建造者模式的第二种方式建造者模式总结建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式。定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。主要作用:在用户 不知道对象的建造过程和细节的情况下 就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)例子:工厂(建造者模式) :负责制造汽车(组装过>程和细节在工厂内)汽车购买者(用户) :你只需原创 2020-11-08 22:22:56 · 151 阅读 · 0 评论 -
设计模式之工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式工厂模式的作用:实现了创建者和调用者的分离核心本质:实例化对象不使用new,用工厂方法代替将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦详细分类:简单(静态)工厂模式:用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改已有代码)工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品)抽象工厂模式:围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。满足OOP七大原则中的三个:开闭原则: 一个软件的实体应当对扩展开原创 2020-11-08 22:18:31 · 1797 阅读 · 0 评论 -
设计模式之单例模式
单例模式单例模式最重要一点,构造方法私有单例模式要解决的就是系统开销的问题常见场景:Windows的任务管理器Windows的回收站项目中,读取配置文件的类,一般也只有一个对象, 没必要每次都去new对象读取网站的计数器一般也会采用单例模式,可以保证同步数据库连接池的设计一般也是单例模式在Servlet编程中,每个Servlet也是单例的在Spring中,每个Bean默认就是单例的(单例是饿汉式创建)1. 饿汉式package com.wlw.single;/** *原创 2020-11-08 22:12:39 · 202 阅读 · 1 评论 -
结构型模式
结构型模式结构型模式分为以下几种模式:适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式结构型模式的作用:从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题...原创 2020-11-09 15:03:52 · 171 阅读 · 0 评论 -
23种设计模式
设计模式什么是设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路(一种思维)。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。设计模式的意义设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点:可以提高程序员的思维能力、编程能力和设计能力。使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高原创 2020-11-08 22:08:49 · 159 阅读 · 0 评论