设计模式
文章平均质量分 83
一枚coin
这个作者很懒,什么都没留下…
展开
-
代理模式-动态代理模式
动态代理是一种在运行时动态创建代理对象的技术,它可以在不修改源代码的情况下为原始对象添加额外的功能或控制其行为。动态代理通常用于实现AOP(面向切面编程)中的切面,以及在不同的框架和库中实现各种功能,例如远程调用、事务管理等。在Java中,动态代理主要通过两种方式实现:基于接口的动态代理和基于类的动态代理。基于接口的动态代理:Java标准库中的类提供了创建基于接口的动态代理的能力。通过方法,可以传入一个类加载器、一组接口和一个对象来创建代理对象。接口中的invoke。原创 2024-04-28 00:30:00 · 1149 阅读 · 0 评论 -
代理设计模式——静态代理设计模式
静态代理是一种结构型设计模式,它在编译时就已经确定了代理类和真实类的关系,即代理类是在编译期间就确定的,代理类和真实类的关系在程序运行前就已经确定。静态代理通常通过手动编写代理类来实现,在代理类中调用真实对象的方法,并可以在调用前后进行一些额外的操作。现在去租房子一般都是去找中介,因为中介手中有大量的房源,中介就是一个代理角色,实际出租房子的房东就是一个真实角色。举例:在原有的增删改查的基础上添加一个日志功能,但是不改变原有代码,这时,我们就可以使用代理模式来完成。使用代理模式无侵入的添加一个Log功能。原创 2024-04-26 00:30:00 · 326 阅读 · 0 评论 -
原型设计模式
在克隆方法中简单的使用super.clone()方法是浅克隆,对于克隆出来的新对象中的引用数据类型的变量实际指向的还是与旧对象中的对应的引用数据类型变量的同一个内存地址。当需要创建新对象时,客户端向原型对象发出克隆请求,原型对象将复制自身并返回一个新对象。实例的值时,实际上是修改了该实例的属性值,而不会创建新的实例。客户端通过调用原型对象的克隆方法来复制对象,而不是通过直接实例化新对象。:通过调用原型对象的克隆方法来创建新对象,而无需知道具体的实现细节。:避免了重复的实例化过程,提高了对象创建的效率。原创 2024-04-25 00:30:00 · 1328 阅读 · 0 评论 -
建造者设计模式
上面的示例是Builder模式的常规用法,导演类Direct在Builder模式中具有很重要的作用,它用于指导具体构建者如何构建产品,控制调用先后次序,并向调用者返回完整的产品类,但是有些情况下需要简化系统结构,可以把Direct和抽象建造者进行结合。比如:麦当劳的套餐,服务员(具体建造者)可以随意搭配任意几种产品(零件)组成一款套餐(产品),然后出售给客户。定义:讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式属于创建型模式,它提供了一种创建对象的最佳方式。原创 2024-04-21 00:30:00 · 813 阅读 · 0 评论 -
单例设计模式
单例设计模式是一种设计模式,用于确保某个类只有一个实例,并提供一个全局访问点。这种模式通常在需要控制一个类的实例只能存在一个的情况下使用,例如线程池、数据库连接池、配置信息等。1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。原创 2024-04-20 00:30:00 · 1110 阅读 · 0 评论 -
工厂设计模式
简单工厂模式(静态工厂模式)虽然不符合设计原则,但是使用方便,实际使用最多工厂方法模式不修改已有类的前提下,通过增加新的工厂类实现扩展抽象工厂模式不可以增加产品,但可以增加产品族应用场景JDK中Calendar的getInstance方法JDBC中的Connection对象的获取Spring中IOC容器创建管理的bean方法反射中Class对象的newInstance方法。原创 2024-04-19 00:30:00 · 1353 阅读 · 0 评论