首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Java的设计形式之一:代理模式

2012-11-09 
Java的设计模式之一:代理模式代理模式:某一个 对象 提供一个 代理对象 ,并由 代理对象 控制对 源对象 的引

Java的设计模式之一:代理模式

代理模式:

某一个 对象 提供一个 代理对象 ,并由 代理对象 控制对 源对象 的引用。代理就是一个人或一个机构代表另一个或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象中起 中介的作用。客户端分辨不出代理主题对象与真实主题对象。(客户分辨不出对象的真正所有者是谁)代理模式 可以并不知道真正的 被代理对象,被代理对象必须有系统的其他角色代为创建并传入。

?

代理模式一般涉及到三个角色:

?

抽象角色:

代理角色:

真正角色:

?

代理模式instance:

?

抽象角色: 作为唯一一个购买的对象 RealEstate...

package Agency;/** *  抽象出房地产的公共属性 *  便于Developer进行开发和设计 */public interface RealEstate {public int realEstate();}

?开发商:有了RealEstate这个抽象的对象,开发商就可以去实现房地产的开发了,此时RealEstate就有了Developer的特点;房子在哪里 房子的价格等;

package Agency;public class Developer implements RealEstate {/** * 实现接口RealEstate * Developer设计自己的房子 */public int realEstate() {System.out.println("Empire Garden Two,DongHu,Wuhan:Opening Celebration June 23,2011");return 3000;}}

??

开发商要寻找代理来卖他的房子,这时候出现了代理,代理要实现RealEstate接口,才能才能在自己的基础上去对房子进行自己的定位。同时因为代理是买的开发商的房子,所以代理也要将开发商的东西搞过来,这里这里听过构造方法,和实力话一个房子来实现;

package Agency;public class PorxySeller implements RealEstate {/** * @parameter RealEstate  */RealEstate one;public PorxySeller(RealEstate  one){this.one=one;}public int realEstate() {System.out.println("You sould pay more for this property");return one.realEstate()+200;}}

?

最后就是客人了,客人首先的看中一个房子 用RealEstate r=new Developer();来实例化出一个,客人还需要一个代理,PorxySeller seller=new PorxySeller(r);通过R将代理和房子联系起来了...

package Agency;public class Client1 {public static void main(String[] args) {RealEstate r=new Developer();PorxySeller seller=new PorxySeller(r);System.out.println(seller.realEstate());}}

?输出结果:

You sould pay more for this property
Empire Garden Two,DongHu,Wuhan:Opening Celebration June 23,2011
3200


Java的设计形式之一:代理模式
?

热点排行