/**
* 抽象角色
*/
public interface IHello
{
void sayHello(String name);
}
/**
* 真实角色
*/
public class Hello implements IHello
{
@Override
public void sayHello(String name)
{
System.out.println("真实角色的方法 " + name); //$NON-NLS-1$
}
}
/**
* 代理类 --- 动态代理
*/
public class ProxyHello implements InvocationHandler
{
Object obj;
/**
* 构造函数
* @param obj
*/
public ProxyHello(Object obj)
{
this.obj = obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("在代理方法执行之前"); //$NON-NLS-1$
method.invoke(obj, args);
System.out.println("在代理方法执行之后"); //$NON-NLS-1$
return null;
}
public static void main(String[] args)
{
Hello hello = new Hello();
ProxyHello pHello = new ProxyHello(hello);
Class hClass = hello.getClass();
IHello h = (IHello)Proxy.newProxyInstance(hClass.getClassLoader(),
hClass.getInterfaces(),
pHello);
h.sayHello("化为");
}
}
-----------------------------
/**
* 抽象角色
*/
public interface IHolle
{
public void sayHello(String name);
}
/**
* 代理类
*/
public class Hello implements IHolle
{
@Override
public void sayHello(String name)
{
System.out.println("实现类的方法 " + name); //$NON-NLS-1$
}
}
/**
* 代理类 --- 静态代理
*/
public class ProxyHello implements IHolle
{
Hello hello;
public ProxyHello(Hello hello)
{
this.hello = hello;
}
@Override
public void sayHello(String name)
{
proRequest();
hello.sayHello(name);
proResponse();
}
public void proRequest()
{
System.out.println("代理之前的处理"); //$NON-NLS-1$
}
public void proResponse()
{
System.out.println("代理之后的处理"); //$NON-NLS-1$
}
public static void main(String[] args)
{
ProxyHello ProxyHello = new ProxyHello(new Hello());
ProxyHello.sayHello("huawei"); //$NON-NLS-1$
}
}
分享到:
相关推荐
变_压_器_工_作_原_理__变压器工作原理.pptx
监_理_工_作_实_施_细_则.doc
班_级_自_治_管_理_方_案.ppt
水泥厂安_全_监_理_规_划.doc
班_级_自_治_管_理_方_案乌中初一三班.ppt
深入浅出_MFC_华中理_工_简体版下
水泥厂安_全_监_理_规_划_工程施工土建监理资料建筑监理工作规划方案报告.doc
固定式压力容器安全管_理_制_度.doc
### C语言图像处理方法详解 #### 一、引言 图像处理是计算机视觉领域中的一个重要分支,涉及到图像的获取、存储、处理以及显示等多个环节。本文将基于C语言这一编程工具,详细介绍几种基本的图像处理技术,包括图像...
【工程文档】-监_理_工_作_实_施_细_则.doc 是一份详细阐述工程监理工作流程和安全管控的专业文档,主要涵盖了以下几个关键知识点: 1. **专业工程特点**:这部分内容通常会根据项目的具体特性,如工程规模、结构...
根据提供的文件内容,我们可以提取如下知识点: 1. 质点的运动规律 - 质点做圆周运动时,位移和路程的区别:位移是起点到终点的直线距离,而路程是质点实际走过的路径长度。 - 平均速度的计算公式是位移除以所用...
【C语言程序设计_超市管理系统】是一个毕业设计项目,旨在训练学生掌握C语言编程技能,同时实现一个实际的管理系统。该系统主要用于管理超市的商品信息,包括存储、更新、查询、统计和排序等功能。...
从给定的文件信息来看,该文档是一份关于工程管理土木建筑类专业大学生的职业生涯规划案例。通过详细的自我分析和社会环境分析等步骤,作者确立了自己的职业目标,并制定了相应的实施计划。下面,我们将从这份文档中...
水泥厂在进行建设和生产过程中,安全是至关重要的环节。安全监理规划是确保施工安全的重要工具,旨在预防事故的发生,保障人员的生命财产安全。本规划针对贵州恒达隆庆水泥厂150万吨/年生产线工程,由毕节地区永筑...
在当前快速发展的城市建设中,工程项目如春港大厦这样的建筑群落建设,无疑对城市的面貌和功能发展具有重要意义。春港大厦工程监理规划报告,作为建筑项目顺利进行的重要保障,详细阐述了确保工程质量、控制建设目标...
【监理规划概述】 在建筑工程中,监理规划是指导监理单位进行工程建设管理的重要文件,它明确了监理工作的范围、内容、目标、依据以及实施方法。本文档是针对某具体建设工程的监理规划,编号为ZCCH-DZ-002,由**...
《C++小学排课系统设计详解》 C++小学排课系统是一种基于C++编程语言开发的教育管理软件,主要用于解决小学课程安排的问题。本文将深入探讨该系统的实现原理、核心功能以及关键技术。 首先,排课系统的核心在于...