`

java中设计模式之代理模式

阅读更多

代理模式是设计模式中比较简单的一种模式;

代理模式就是委托对象将部分的功能委托给代理对象来使用,代理对象就拥有委托对象的部分功能,代理对象通过调用自己的方法间接调用委托对象的方法;

比如代理律师之类的,委托人将自己的部分权限委托给代理律师使用,代理律师就拥有了委托人的一部分权限,并且可以被代理人名义上来行使权限,当然代理人不能超出这个权限;而在此这个权限的传递是通过合理的合同;

因此在编写一个代理模式是需要有公共的接口类(合同);委托对象实现公共接口(签署合同);代理对象现公共接口(签署合同);权限的信息在公共接口中定义(合同内容)

公共接口:

package com.proxy.face;
public interface Love {
	public void speak();
}

 委托对象:

package com.proxy.me;
import com.proxy.face.Love;
public class MeInfo implements Love {
	private String name;
	private String name2;	
	public MeInfo(String name,String name2) {
		super();
		this.name = name;
		this.name2 = name2;
	}
	@Override
	public void speak() {
		// TODO Auto-generated method stub
		System.out.println(name+" love "+name2);
	}
}

 代理对象:

package com.proxy.She;
import com.proxy.face.Love;
import com.proxy.me.MeInfo;
public class She implements Love {
	private MeInfo info;
	private String name;
	private String name2;	
	public She(String name,String name2) {
		this.name = name;
		this.name2=name2;
	}
	public void speak(){
		if(info==null){
			info=new MeInfo(name,name2);
		}
		info.speak();
	}
}

 代理对象行使权限:

package com.proxy.test;
import com.proxy.She.She;
import com.proxy.face.Love;
public class Test {
	public static void main(String[] args) {
		Love she=new She("I","you");
		she.speak();
	}
}

 代理对象反馈结果:

I love you

 代理模式的使用场景:

1.在对外隐藏某个类时,我们可以为该类提供代理类来访问

2.当一个类需要对不同的调用者提供不同的调用权限时,可以使用代理类来实现

3.当我们要扩展某个类的某个功能时,可以使用代理模式,在代理类中进行简单扩展

分享到:
评论

相关推荐

    Java设计模式之代理模式(结构)

    ### Java设计模式之虚拟代理模式详解 #### 一、引言 在软件工程领域,设计模式作为一种被广泛接受的最佳实践,对于提高代码质量和可维护性起着至关重要的作用。其中,“代理模式”作为结构型设计模式之一,在解决...

    JAVA设计模式之代理模式实例

    在Java编程领域,设计模式是一种解决常见问题的模板或最佳实践,它被广泛应用于软件开发中以提高代码的可读性、可维护性和可扩展性。代理模式是设计模式的一种,它提供了一种对目标对象进行增强或者控制访问的方式。...

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    Java设计模式——代理设计模式(静态代理和动态代理)

    在Java编程中,设计模式是一种解决常见问题的模板或最佳实践,它可以帮助开发者编写更加灵活、可维护和可扩展的代码。代理设计模式是其中的一种,它的主要作用是在不修改原有对象的基础上,为对象添加额外的功能或者...

    Java设计模式-代理模式例子

    在这个“Java设计模式-代理模式例子”中,我们将深入探讨代理模式的概念、实现方式以及它在实际开发中的应用。 代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象控制对原对象的访问。在...

    java23中设计模式详解

    Java中的23种设计模式是软件工程中非常重要的概念,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种复杂的软件系统中。这些模式在不同的上下文中提供了可重用的结构和行为,使得代码更加清晰、可维护和扩展...

    JAVA设计模式(代理模式)

    **Java设计模式——代理模式详解** 代理模式是软件设计模式中的一个重要组成部分,它在Java编程中扮演着举足轻重的角色。代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原...

    java常用23中设计模式

    总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...

    JAVA设计模式(java设计)

    Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...

    重学java的设计模式

    Java作为一门广泛应用的开发语言,其设计模式的应用对于提高代码质量、可维护性和可扩展性至关重要。本文将着重探讨创建型模式、结构型模式和行为模式这三大类设计模式,并结合六项设计原则进行深入解析。 首先,...

    《Java设计模式》课程设计报告.docx

    《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    JAVA23中设计模式

    ### JAVA23中设计模式详解 #### 一、概述 设计模式是在软件设计过程中解决常见问题的一套可复用的解决方案。《JAVA23中设计模式》是一份针对Java程序员的指南,旨在通过一系列示例和理论讲解,帮助读者理解和掌握...

    java经典设计模式

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的模板或蓝图。这些模式在软件工程中被广泛使用,因为它们代表了最佳实践,可以帮助开发者编写更可维护、可扩展和可复用的代码。下面将详细...

    JAVA 设计模式 工厂模式 代理模式 迭代模式 责任链模式 源码

    在代理模式中,代理类作为真实对象的代表,可以在客户端和目标对象之间起到中介作用,例如,可以添加额外的功能,如缓存、日志记录、权限控制等,同时保持原有接口不变。 3. **迭代器模式**:迭代器模式是行为型...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    Java设计模式-代理模式

    Java设计模式是软件开发中的重要概念,它是一种在软件系统中重用代码、提高灵活性和可维护性的方法。代理模式是这些设计模式中的一种,它为其他对象提供一种代理以控制对这个对象的访问。代理模式的核心思想是在目标...

    Java 企业设计模式

    Java企业设计模式是软件开发领域中的重要组成部分,它是一套经过实践验证的解决方案,用于解决在Java环境中构建大型、复杂企业应用时常见的问题。这些模式是经验丰富的开发者们通过不断尝试和总结,形成的最佳实践,...

Global site tag (gtag.js) - Google Analytics