代理模式:故名思议就是通过其他的对象来代替本身做些事情,比如:买房子的整个过程
1:生成房子的要销售房子,但是会通过 中介公司 销售 他们的房子给客户
其中 中介公司就相当于代理了 该房子的 销售权利,该权利必须 是两方所共有的,而实现不同;所以是接口中的一个方法
就是代理对象和实际对象公用一个接口,而代理必须持有对实际对象的引用
如下:
package com.porxy;
public interface Sell {
public void sellHouse();
}
生成商的如下:
package com.porxy;
public class HouseFactory implements Sell {
public void sellHouse() {
System.out.println("房子生产商被调用了");
}
}
代理商如下:
package com.porxy;
public class SellProxy implements Sell {
// 这个对象可以用ioc来注入
private HouseFactory houseFactory;
// 代理的实体类对象实例化
public SellProxy(HouseFactory houseFactory) {
this.houseFactory = houseFactory;
}
public void sellHouse() {
System.out.println("代理销售房子前作的事情");
houseFactory.sellHouse();
System.out.println("代理销售房子的后作的事情");
}
}
通过代理可以再买房子前后作一些相关的事情,这也就是AOP的大概思路。
测试如下:
package com.porxy;
public class TestProxy {
public static void main(String[] args) {
Sell sell1 = new SellProxy(new HouseFactory());
sell1.sellHouse();
}
}
结果:
结果如下:
代理销售房子前作的事情
房子生产商被调用了
代理销售房子的后作的事情
从中可以看到静态代理的对象时固定的,每一个代理就要写个接口,那样的话
在实际的过程是不可能的所以我们需要的是动态的代理
分享到:
相关推荐
Java中的代理模式--静态代理和动态代理 Java中的代理模式--静态代理和动态代理
在Java中,代理模式有多种实现方式,包括静态代理、JDK动态代理和CGLIB动态代理。 **静态代理** 静态代理是最早也是最基础的代理实现方式。在静态代理中,我们需要创建一个代理类,这个代理类与原始类(被代理类)...
在这个例子中,"优秀的设计模式示例-静态代理模式"提供了实际项目中的代码实例,旨在帮助开发者更好地理解和应用静态代理模式。 静态代理模式的核心思想是通过代理类来代理原始对象(也称为真实对象或服务对象),...
在本主题“代理模式之静态代理---数据库连接池对象实现原理”中,我们将探讨如何使用静态代理来实现数据库连接池。数据库连接池是现代应用中常用的优化手段,它可以高效地管理数据库连接,避免频繁地创建和关闭连接...
在这个静态代理案例中,静态代理模式主要用于增加额外的功能,例如日志记录、权限验证等,而不会影响到核心业务逻辑(购票)。代理类将持有目标对象(售票员),并在调用目标对象方法时进行预处理和后处理。 总的来...
Java静态代理模式是一种设计模式,它允许我们为一个对象提供一个代理,以便增强或扩展其功能,同时不改变原有对象的代码。在Java中,静态代理是通过在代理类中显式实现目标接口来实现的。下面将详细介绍静态代理模式...
在Java中,代理模式可以通过多种方式实现,包括静态代理、动态代理(JDK动态代理和CGLIB动态代理)等。 **静态代理** 静态代理是最基础的代理形式,需要手动创建一个代理类,该类继承或实现与目标类相同的接口,并...
在Java中,代理模式主要有静态代理和动态代理两种实现方式。 1. 静态代理:在编译时就已经确定了代理类与目标类的关系。通常,代理类会实现和目标类相同的接口,以便于在代理类中调用目标类的方法。这种方式的缺点...
Java编程模式-代理模式。介绍了静态代理模式和动态代理模式
代理模式的实现方式有多种,包括静态代理、动态代理。静态代理是在编译时就已经确定代理类,而动态代理则是在运行时动态创建代理对象,通常利用Java的`java.lang.reflect.Proxy`类或C#的`System.Reflection.Emit`...
静态代理模式是设计模式中的一种,它属于结构型模式,主要用来在不修改原有对象的基础上,通过一个代理对象来增强或扩展原对象的功能。在本篇文章中,我们将深入探讨静态代理模式的概念、工作原理以及其优缺点。 ##...
在本篇Spring学习笔记中,我们将探讨静态代理模式在Spring框架中的应用与分析。静态代理是一种常见的设计模式,它在不修改目标类代码的情况下,通过代理类来扩展或增强目标类的功能。在Spring中,静态代理主要应用于...
代理模式又分为静态代理、jdk 动态代理、cglib 动态代理三种实现方式。每种实现方式都有其优点和适用的场景: 1. 静态代理:代理类需要非常明确,所以无法做到通用,但是效率也是最高的。静态代理需要定义一个接口...
代理模式在Java中有两种常见的实现方式:静态代理和动态代理。静态代理是通过程序员显式创建代理类来实现的,而动态代理则利用Java的反射API在运行时动态创建代理对象。 1. **静态代理**:在静态代理中,我们需要为...
代理模式可以分为静态代理和动态代理两种。静态代理是通过手动编写代理类来实现代理的,而动态代理则是通过使用代理工厂或代理类生成器来生成代理对象。 二、静态代理 静态代理是通过手动编写代理类来实现代理的。...
设计模式之代理模式_静态代理的一个java实现的demo。主类在Client中。仅代码实现,可供初学者参考使用
代理模式可以进一步细分为静态代理和动态代理。 - **静态代理**:在程序编译时就已经确定代理类的具体实现方式。这意味着每次需要代理不同的操作时,都需要修改代理类的代码,这违反了软件工程中的开闭原则。 - **...
//代理模式内部引用了真实角色 public void requst() { this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realsubject) { realsubject = new ReallSubject(); } realsubject.requst(); // ...
Java 动态代理详解(代理模式+静态代理+JDK动态代理+CGLIB动态代理) Java 动态代理是 Java 编程语言中的一种强大工具,广泛应用于 Spring AOP、Hibernate 数据查询、测试框架的后端 mock、RPC 远程调用、Java 注解...