Java 静态代理模式

静态代理模式

1.都需要实现的接口
interface  person{
    void print();

}
2.实现接口的类:
public class  stu  implements person{
   @Override
    void print(){
        sout("123");
    }
}
3.代理对象增强实现接口的类:
public class stuProxy implements person{
        private stu  target;

    stuProxy(stu target){    this.target=target;  }
        public void print(t){
        执行前加代码。。。
        target.print();
        执行后加代码;
        }
}
4.stuProxy  stuproxy  =new  stuProxy(stu);
   stuproxy.print();
增强类类类类类的功能

 new  stuProxy(new stu()).print();

   new Thread(()->{sout("234")}).start();

线程代理模式

原文地址:https://www.cnblogs.com/chencn/p/12232943.html

时间: 2024-10-09 20:22:54

Java 静态代理模式的相关文章

Java代理模式——静态代理模式

一:代理模式 代理模式的作用是:为其他对象提供一种代理以控制这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 二:代理模式设计到的角色 抽象角色:声明真是对象和代理对象的共同接口(抽象类或接口). 代理角色:代理对象角色内部含有对真是对象的引用,从而可以操作真是对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真是对象.同时,代理对象可以在执行真实对象的操作时,附加其他操作,相当于对真是对象进行封装. 真实

Java设计模式-代理模式之静态代理

Java设计模式-代理模式之静态代理 概念 为另一个对象提供一个替身或占位符以提供对这个对象的访问,使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理对象可以是远程的对象.创建开销大的对象或需要安全控制的对象 远程代理控制访问远程对象 虚拟代理控制访问创建开销大的资源 保护代理基于权限控制对资源的访问 看如下的类图: 仔细看上面的类图,首先是Subject它为RealSubject和Proxy提供了接口,通过实现同一个接口,Proxy在RealSubject出现的地方取代它,这点和适配

JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式

/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person("fish7"); p.setIsay(new BeforeGong()); p.say(); p.setIsay(new AfterGong()); p.say(); } } class Person{ //只有在运行期才和say行为关联起来,这就叫面向接口编程 private String

JAVA学习--反射之静态代理模式

1 //静态代理模式 2 //接口 3 interface ClothFactory{ 4 void productCloth(); 5 } 6 //被代理类 7 class NikeClothFactory implements ClothFactory{ 8 9 @Override 10 public void productCloth() { 11 System.out.println("Nike工厂生产一批衣服"); 12 } 13 } 14 //代理类 15 class Pr

Java之静态代理模式

静态代理模式:这种模式可以实现帮助被代理者完成一些前期的准备工作和后期的善后工作,但是核心的业务逻辑仍然是由被代理者完成. 代码结构由三部分组成 (1)接口:主题 (2)代理类 (3)被代理类 实现方式:代理类和被代理类要实现同一个主题接口,而且代理类中要有一个被代理类的属性(target),这样才能把核心业务逻辑交还给被代理类完成:而一些与核心业务逻辑无关的逻辑,并且需求是多变的,那么这些逻辑就可以交给代理类来完成 示例 需求:计算add()的运行时间 public class StaticP

Java动态代理模式

1.如何实现静态代理模式? 能够想到的方式起码有两种继承和聚合. 创建一个接口 package com.jyd.proxy; /** * 定义一个可以工作的接口,定义一系列操作方法 * @author hadoop * */ public interface Workable { void renting(); } 创建一个类继承这个接口 package com.jyd.proxy; import java.util.Random; /** * 定义一个中介人来实现可以工作的接口 * @auth

Java设计模式-代理模式之动态代理(附源码分析)

Java设计模式-代理模式之动态代理(附源码分析) 动态代理概念及类图 上一篇中介绍了静态代理,动态代理跟静态代理一个最大的区别就是:动态代理是在运行时刻动态的创建出代理类及其对象.上篇中的静态代理是在编译的时候就确定了代理类具体类型,如果有多个类需要代理,那么就得创建多个.还有一点,如果Subject中新增了一个方法,那么对应的实现接口的类中也要相应的实习该方法,不符合设计模式原则. 动态代理的做法:在运行时刻,可以动态创建出一个实现了多个接口的代理类.每个代理类的对象都会关联一个表示内部处理

Java设计模式-代理模式之动态代理(附源代码分析)

Java设计模式-代理模式之动态代理(附源代码分析) 动态代理概念及类图 上一篇中介绍了静态代理,动态代理跟静态代理一个最大的差别就是:动态代理是在执行时刻动态的创建出代理类及其对象. 上篇中的静态代理是在编译的时候就确定了代理类详细类型.假设有多个类须要代理.那么就得创建多个. 另一点,假设Subject中新增了一个方法,那么相应的实现接口的类中也要相应的实现这些方法. 动态代理的做法:在执行时刻.能够动态创建出一个实现了多个接口的代理类.每一个代理类的对象都会关联一个表示内部处理逻辑的Inv

Java 静态代理和动态代理

Java 静态代理 静态代理通常用于对原有业务逻辑的扩充.比如持有二方包的某个类,并调用了其中的某些方法.然后出于某种原因,比如记录日志.打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里.所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的. 这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性. 一个典型的代理模式通常有三个角色,这里称之为**代理三要素** 共同接口 public int