`
vortexchoo
  • 浏览: 66100 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

静态代理笔记

    博客分类:
  • java
 
阅读更多

代理:通俗的来讲就是A要做一件事情,让B代替他来做相关的事情,但是主角还是A。

Java中静态代理的三要素:

1. 接口(规范)

2. 主角类:实现接口

3. 代理类:实现接口

 

干货:

 

首先是接口:相当于业务主体,今天的干货以杀人为主体

 

public interface IKill {
	
	public abstract void killSomeone(String targetName);
	
}

 

 

 其次是主角登场:今天的主角是一名职业杀手

 

public class Killer implements IKill {
	
	@Override
	public void killSomeone(String targetName) {
		// TODO Auto-generated method stub
		System.out.println("I am a killer. I've killed "+targetName);
	}

}

 最后是我们的杀手中介(也就是代理)

 

public class KillerAgent implements IKill  {
	
	private IKill kill;
	
	public KillerAgent(IKill kill){
		this.kill = kill;
	}
	
	void findTarget(){
		System.out.println("agent:寻找击杀对象");
	}
	
	@Override
	public void killSomeone(String targetName) {
		findTarget();
		this.kill.killSomeone(targetName);
		escape();
	}
	
	void escape(){
		System.out.println("agent:分钱,帮助杀手逃跑");
	}
	
}

主题接口代码很简单,就是个普通的接口。

主角类也不复杂,就是针对主体做自己该做的事情。

代理类相对复杂点,虽然实现了主题接口,但是它没有做核心的事情,只是帮助了主角更好的完成事情。

 

测试代码:

public static void main(String[] args) {
		IKill kill = new Killer();  
		KillerAgent ka = new KillerAgent(kill);
		ka.killSomeone("Jim");
	}

 

分享到:
评论

相关推荐

    Spring学习笔记(12)----静态代理模式分析演示

    在本篇Spring学习笔记中,我们将探讨静态代理模式在Spring框架中的应用与分析。静态代理是一种常见的设计模式,它在不修改目标类代码的情况下,通过代理类来扩展或增强目标类的功能。在Spring中,静态代理主要应用于...

    代理模式笔记.xls

    代理简介,静态代理,动态代理,23种设计模式之一,拦截器在在流行的开源框架中很常见,依赖的技术就是Java的动态代理。  理解拦截器的核心原理对理解这些开源框架的体系结构至关重要。  下面以一个简单的模型的...

    早期自学java代理知识笔记

    在静态代理中,定义一个接口或者父类,被代理对象和代理对象一起实现这个接口或者继承这个父类。在代理对象中,对被代理对象进行功能增强。 优点: * 可以做到不修改目标对象的功能前提下对目标功能进行扩展 * ...

    全套java笔记javaEE(上)

    在Java中,静态代理和动态代理(如Java的InvocationHandler接口)是常见的实现方式。 8. 开发DispatcherServlet工具类:DispatcherServlet是Spring MVC的核心组件,负责接收请求并分发到相应的处理器。笔记可能讲解...

    Java多线程 基础学习笔记 / 学习静态代理模式-附件资源

    Java多线程 基础学习笔记 / 学习静态代理模式-附件资源

    django笔记 django笔记

    本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 1. **Django简介**: Django是由两位美国开发者在2005年创建的开源项目,它遵循MVC(模型-视图-控制器)设计模式,但更倾向于MTV(模型-模板-视图)...

    spring学习笔记(七)

    这篇笔记可能详细解析了Spring如何实现静态代理以及动态代理,下面将对这两个知识点进行深入探讨。 首先,我们要理解代理模式的基本原理。代理模式是一种设计模式,它为一个对象提供一个代理以控制对该对象的访问。...

    Spring学习笔记

    Spring学习笔记Spring spring的配置 IOC 依赖注入 基于Xml的注入 基于注释的注入 ... 静态代理 动态代理 使用spring实现AOP 基于Annotation实现AOP 基于XML实现AOP SSH的整合 spring集成jdbc

    javase笔记.7z

    1. **语法结构**:Java是一种静态类型的、面向对象的语言,其语法与C++类似,但更为简洁。包括变量声明、数据类型(如整型、浮点型、字符型、布尔型等)、运算符、流程控制(如if-else、switch、for、while循环)等...

    16-Java代理模式的学习笔记1

    Java提供了两种主要的代理实现方式:静态代理和动态代理。 ### 静态代理 在静态代理中,我们需要为原始对象创建一个显式的代理类。代理类实现了与原始对象相同的接口,并在调用实际方法之前或之后添加额外的行为。...

    nginx笔记.zip

    Nginx以其事件驱动的异步非阻塞模型在处理静态文件、反向代理、负载均衡等方面表现出色。 **安装与配置** 在Linux系统中,通常通过包管理器(如apt-get或yum)进行Nginx的安装。安装完成后,Nginx的主配置文件位于...

    两天笔记本上网共一根网线上网

    无线路由器的配置流程相对直观,以D-Link624+A型号为例,只需通过浏览器访问192.168.0.1地址,便可进入路由器的管理界面,根据具体网络环境(如PPPoE拨号、静态IP等)进行设置。详细的配置步骤可参照路由器附带的...

    马哥2016运维笔记

    首先,Nginx是一款高性能的HTTP和反向代理服务器,广泛用于网站的负载均衡和静态资源服务。它的事件驱动模型和非阻塞I/O机制使其在处理高并发请求时表现出色。运维人员学习Nginx能够掌握如何配置服务器、实现负载...

    Nginx学习笔记.zip

    这个“Nginx学习笔记.zip”压缩包文件包含了一系列关于Nginx的教程资源,分别命名为“第1节课”到“第5节课”,暗示着一个逐步深入的学习过程。 在第一节课中,我们通常会了解Nginx的基本概念和安装步骤。Nginx的...

    nginx笔记笔记笔记

    作为一款反向代理服务器,Nginx 不仅能提供静态文件服务,还能进行动态请求的转发,实现负载均衡,以及隐藏真实服务器地址等功能。 **1. 反向代理** 反向代理是 Nginx 的核心特性之一。客户端发送请求到 Nginx 代理...

    java面试题 学习笔记

    5. 接口与内部类:理解接口的实现,静态内部类,匿名内部类,以及成员内部类的应用。 三、集合框架 1. List、Set和Queue:比较ArrayList、LinkedList、HashSet、TreeSet等集合的特性和使用场景。 2. Map接口:熟悉...

    nginx学习笔记.zip

    本学习笔记将深入探讨Nginx的核心概念、安装与配置、反向代理、负载均衡、缓存管理以及日志记录等多个方面,旨在帮助读者全面掌握Nginx的使用技巧。 **一、Nginx核心概念** 1. **事件模型**:Nginx采用异步非阻塞...

    小滴课堂笔记_Nginx_SSM_springcloud

    在Web应用程序中,Nginx 常用于静态文件的托管和反向代理,将请求分发到多个后端服务器,实现负载均衡,提高系统可用性和响应速度。 【Spring】 Spring 是一个全面的企业级应用开发框架,它简化了Java EE开发,通过...

    java设计模式源码和笔记(第一部分)

    Java中可以通过静态代理和动态代理(JDK或CGLIB)实现。笔记可能详细描述了代理的生成和调用流程。 6. **适配器模式**:将一个类的接口转换成客户希望的另一个接口。在Java中,适配器可以是类或接口的形态。源码...

Global site tag (gtag.js) - Google Analytics