`
rich8w
  • 浏览: 180150 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

04_ProxyPattern 为别人做嫁衣

阅读更多
GiveGift赠送礼物接口(由追求者和代理同时实现)
package cn;

public interface GiveGift {
	public void GiveDolls();
	public void GiveFlowers();
	public void GiveChocolate();
}



Pursuit追求者类
package cn.beans;


import cn.GiveGift;


public class Pursuit implements GiveGift {

	SchoolGirl mm;
	
	public Pursuit(SchoolGirl mm){
		this.mm=mm;
	}
	
	@Override
	public void GiveChocolate() {
		System.out.println(mm.getName()+",送你巧克力。");		
	}

	@Override
	public void GiveDolls() {
		System.out.println(mm.getName()+",送你洋娃娃。");
	}

	@Override
	public void GiveFlowers() {
		System.out.println(mm.getName()+",送你鲜花。");
	}

}



Proxy代理追求者类
package cn.beans;

import cn.GiveGift;

public class Proxy implements GiveGift {

	Pursuit gg;
	
	public Proxy(SchoolGirl mm){
		//衔接处
		this.gg=new Pursuit(mm);
	}
	
	@Override
	public void GiveChocolate() {
		gg.GiveChocolate();
	}

	@Override
	public void GiveDolls() {
		gg.GiveDolls();
	}

	@Override
	public void GiveFlowers() {
		gg.GiveFlowers();		
	}

}



SchoolGirl被追求者类
package cn.beans;

public class SchoolGirl {
	private String name;

	public SchoolGirl(String name){
		this.name=name;
	}

	public String getName() {
		return name;
	}
	
}



测试类
package junit.test;

import org.junit.Test;

import cn.beans.Proxy;
import cn.beans.SchoolGirl;


public class Test_Proxy {

	@Test public void test(){
		SchoolGirl mm = new SchoolGirl("李娇娇");
		Proxy proxy = new Proxy(mm);
		proxy.GiveChocolate();
		proxy.GiveDolls();
		proxy.GiveFlowers();
	}
}
0
0
分享到:
评论

相关推荐

    ProxyPattern.unitypackage

    这是一个关于设计模式中的代理模式例子,C#,Vs205,Unity 5.6.3f1 (64-bit)有需要的请下载!本来不想设置积分,可是最低1分,没办法!

    proxypattern.zip

    代理模式的主要目的是为其他对象提供一个替代品或代理,以控制对这个对象的访问。这种模式在很多场景下都非常有用,比如在对象需要增加额外功能,如日志、缓存、权限控制,或者需要延迟加载原始对象时。代理模式通过...

    设计模式:动态代理模式(ProxyPattern)学习指南

    代理模式中的静态代理模式存在一些特点:1个静态代理只服务1种类型的目标对象若要服务多类型的目标对象,则需要为每种目标对象都实现一个静态代理对象关于静态代理模式可以看文章:代理模式(ProxyPattern):静态...

    ProxyPattern:代理模式的实现

    代理模式是一种设计模式,它允许我们在不改变原始对象行为的情况下,为对象添加额外的功能或控制。在Java中,代理模式的实现通常分为静态代理和动态代理两种方式。 **静态代理** 在静态代理中,我们需要创建一个...

    [结构型模式] 代理模式的理解

    代理模式的主要目的是为其他对象提供一种代理以控制对这个对象的访问。通过代理,我们可以实现远程代理、虚拟代理、缓存代理、智能引用等目标。 在代理模式中,有三个主要角色: 1. **真实对象(Real Subject)**:...

    常用设计模式的IOS实现源码打包下载

    AbstractFactoryPattern AdapterPattern IBridgePattern IBuilderPattern ChainOfResponsibilityPatte ...ProxyPattern SingletonPattern StatePattern StrategyPattern TemplatePattern VisitorPattern

    设计模式之结构型模式

    本资源是用VC6.0实现的结构型设计模式,主要有BridgePattern、AdapterPattern、DecoratorPattern、CompositePattern、FlyweightPattern、FacadePattern、ProxyPattern六种模式,参考于《23种设计模式(C++).pdf》

    Proxy 模式学习代码

    Proxy模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用。这种模式在软件工程中广泛应用,主要用于控制对真实对象的访问,提供额外的功能,如日志、...

    Head First模式设计配套源码

    `ProxyPattern`目录可能包含真实对象和代理对象的代码,展示了代理如何拦截请求并进行额外操作。 8. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。`BuilderPattern`...

    javascript 设计模式

    它自己也实现了一系列的设计模式,比如常见的CompositePattern(组合模式)、AdapterPattern(适配器模式)、ObserverPattern(观察者模式)、IteratorPattern(迭代器模式)和ProxyPattern(代理模式)等。...

    C#设计模式

    - 代理模式(ProxyPattern),为其他对象提供一种代理以控制对这个对象的访问。 行为型模式关注的是对象之间的通信模式。这包括: - 模板方法模式(TemplateMethodPattern),在一个方法中定义一个算法的骨架,将...

    DesignPattern.zip

    `ProxyPattern`目录可能包含代理类和原始对象的实现。 7. **适配器模式(Adapter)**:将一个类的接口转换成客户希望的另一个接口,使得原本因接口不兼容而不能一起工作的那些类可以一起工作。`AdapterPattern`目录...

    《Head First 设计模式》附书源码(Java版)

    `ProxyPattern`包可能包含代理接口、真实对象类和代理类,展示了如何在不修改原有代码的情况下,增加额外的功能或控制访问。 8. **策略模式(Strategy)**:定义一系列算法,并将每个算法封装起来,使它们可以互相...

    JAVA设计模式-设计模式公司出品

    2. 代理模式(PROXYPATTERN):代理模式为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户和目标对象之间起到中介作用。 3. 单例模式(SINGLETONPATTERN):单例模式确保一个类只有一个实例,并提供一...

    DesignPatterns:项目:C#中的设计模式示例

    设计模式 设计模式是对反复出现的问题的解决方案。 关于如何解决某些问题的指南我已经在C#中实现了某些设计模式的实现,以帮助像我这样的初学者着迷。 .NET Framework中有一些更好的替代...[代理](/ ProxyPattern)

    Desiger.rar

    在C++中,`ProxyPattern`可能包括`RealSubject`和`Proxy`,其中`Proxy`类维护一个指向`RealSubject`的引用,实现与真实对象相同的接口,但可以添加额外的功能或控制访问。 6. **策略模式**:定义一系列算法,并将每...

Global site tag (gtag.js) - Google Analytics