`
jingliankui123
  • 浏览: 104358 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

java代理模式

 
阅读更多

《大话设计模式》之代理模式

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。

引用《大话设计模式》的例子来说明代理的作用!

小明喜欢别的班一位女同学(MM),但是不认识她,可是他认识他同班同学,所以小明想通过他认识的同班同学来追(MM)。

如果把这个场景应用到设计模式当中的话,就应该用代理模式。

代理模式和被代理者的接口是同一个

如图:

 

 

 

 

代码:

代理与被代理共同实现接口类

public interface GiveGift {
   public void giveDolls();
   public void giveFlowers();
   public void giveChocolate();
   
}

 被代理类是真正的业务逻辑的实现

public class Pursuit implements GiveGift {
    private SchoolGirl mm;
    
    public Pursuit(SchoolGirl mm) {
    	this.mm = mm;
	}
    
	@Override
	public void giveDolls() {
		System.out.println("送 "+mm.getName()+" 洋娃娃");
	}

	@Override
	public void giveFlowers() {
		System.out.println("送 "+mm.getName()+" 花");
	}

	@Override
	public void giveChocolate() {
		System.out.println("送 "+mm.getName()+" 蛋糕");
	}

}

 

代理类

public class Proxy implements GiveGift{
    private Pursuit pursuit;
    
    public Proxy(SchoolGirl mm) {
    	pursuit = new Pursuit(mm);
	}
    
	@Override
	public void giveDolls() {
		pursuit.giveDolls();
	}

	@Override
	public void giveFlowers() {
		pursuit.giveFlowers();
	}

	@Override
	public void giveChocolate() {
		pursuit.giveChocolate();
	}

}

 

客户端

public class Client {
	public static void main(String[] args) {
            SchoolGirl mm = new SchoolGirl();
            mm.setName("mm");
            Proxy daili = new Proxy(mm);
            daili.giveChocolate();
            daili.giveDolls();
            daili.giveFlowers();
	}
}

 

public class SchoolGirl {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

  • 大小: 33.2 KB
分享到:
评论

相关推荐

    Java代理模式Java动态代理

    ### Java代理模式与Java动态代理详解 #### 一、代理模式概述 代理模式是一种软件设计模式,它在客户端和目标对象之间提供了一种间接层。这种模式的主要目的是控制客户端对目标对象的访问,并且可以在不修改原有...

    java 代理模式详解

    总结一下,Java代理模式的核心在于`Proxy`类和`InvocationHandler`接口,它们共同实现了在运行时动态创建符合特定接口的代理对象。通过代理,我们可以在不修改原始对象代码的情况下,添加额外的功能或者控制对原始...

    Java 代理模式

    Java代理模式是一种设计模式,它允许我们为一个对象创建一个代理对象,该代理对象在调用实际对象的方法之前或之后可以执行额外的操作。这在不修改原有对象代码的情况下,提供了扩展功能的可能性。代理模式通常分为两...

    java代理模式总结

    Java代理模式是一种设计模式,它允许我们为现有的对象创建一个代理对象,以便在不修改原对象的情况下增强或扩展其功能。这种模式在处理需要添加额外逻辑但又不想修改原始类的场景时尤其有用,比如日志、事务管理、...

    java代理模式和动态代理

    ### Java代理模式和动态代理详解 #### 一、概述 在软件工程中,代理模式是一种常用的软件设计模式,主要用于在不直接暴露目标对象的情况下提供一个替代接口。这种模式可以简化客户端与目标对象之间的交互,同时还...

    Java代理模式模板代码,包含动态代理与静态代理

    Java代理模式是一种设计模式,它允许我们为一个对象创建一个代理,这个代理对象可以在不影响原始对象功能的基础上,增强或扩展其行为。代理模式在软件开发中广泛应用,例如用于权限控制、事务管理、日志记录等场景。...

    java代理模式示例源码

    在给定的“java代理模式示例源码”中,我们可以通过房产中介的例子来理解这种模式。 房产中介在现实生活中,是客户与房东之间的桥梁,它可以代表客户处理租赁事宜,也可以在房东和客户之间传递信息,这与代理模式的...

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

    Java代理模式是一种设计模式,它允许我们为一个对象创建一个代理,这个代理对象可以在调用原始对象的方法之前或之后执行额外的操作。代理模式在软件工程中有多种应用,例如:增加安全控制、性能监控、事务管理等。...

    Java代理模式例子

    Java代理模式 事例很生动,非常容易理解,推荐给大家。

    java 代理模式

    Java代理模式是一种设计模式,它允许我们为一个对象创建一个代理,这个代理对象可以在调用原始对象的方法之前或之后执行额外的操作。代理模式在很多场景下都非常有用,比如在访问对象时增加安全性、性能监控、事务...

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

    在本实例中,我们将深入探讨Java中的代理模式及其应用。 代理模式的核心思想是为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用。它可以控制目标对象的访问,也可以在调用目标对象的...

    java实现代理模式

    用java实现代理模式,使用房屋中介的现实例子进行代理模式的说明

    Java代理模式.pdf

    Java代理模式.pdf

Global site tag (gtag.js) - Google Analytics