亚洲中文精品a∨在线,国产在线精品在线精品,国产亚洲欧美一区,欧美肉肉丝视频一区二区


學(xué)校介紹

藍鷗是一家集產(chǎn)、學(xué)、研、創(chuàng)為一體的綜合性移動互聯(lián)網(wǎng)研發(fā)培訓(xùn)機構(gòu),致力于iOS開發(fā)、Unity3D游戲開發(fā)、Android開發(fā)、HTML5前端開發(fā)和Web安全攻防等軟件人才的培養(yǎng)。藍鷗強大的師資陣容,純凈的教育理念,嚴格的管理制度,使其成為了美國蘋果公司AATC認證官方授權(quán)培訓(xùn)中心、.. 招生資質(zhì): 未認證
學(xué)校優(yōu)勢: 關(guān)注移動互聯(lián)網(wǎng),專注ios技術(shù)與培訓(xùn)、HTML5技術(shù)、前端開發(fā)技術(shù)的分享和人才培養(yǎng)及擁有自主研發(fā)產(chǎn)品的IT科技公司
咨詢電話: 021-37629222
分享到:
藍鷗介紹Java語言中代理模式簡介(一)
2017/7/31 18:18:18 來源:藍鷗科技有限公司上海分公司 [加入收藏]

介紹Java語言中代理模式簡介(一),詳細看藍鷗上海Java培訓(xùn)的分享。

1 代理的作用

代理模式是常用的Java設(shè)計模式,它的特征是代理類與委托類有同樣的接口,代理類主要負責(zé)為委托類預(yù)處理消息、過濾消息、把消息轉(zhuǎn)發(fā)給委托類,以及事后處理消息等。代理類與委托類之間通常會存在關(guān)聯(lián)關(guān)系,一個代理類的對象與一個委托類的對象關(guān)聯(lián),代理類的對象本身并不真正實現(xiàn)服務(wù),而是通過調(diào)用委托類的對象的相關(guān)方法,來提供特定的服務(wù)。

2 代理模式的例子

假設(shè)有一個Italk接口,有空的方法talk(說話),所有的Person對象都實現(xiàn)(implements)這個接口,實現(xiàn)talk方法,程序有很多地方都將Person實例化,執(zhí)行talk方法,后來發(fā)現(xiàn)程序里有一些除了要說話以外還要唱歌(sing),那么我們既不能在Italk接口里增加sing()方法,又不能在每個Person對象都增加sing方法,我們只有增加一個代理類TalkProxy,這個代理類里實現(xiàn)talk和sing方法,然后在需要sing方法的地方調(diào)用代理類即可,代碼如下:

2.1 接口類Italk

public interface Italk

{

public void talk(String msg);

}

2.2 委托類Person

public class Person implements Italk

{

public String name;

public String age;

public Person(String name, String age)

{

this.name = name;

this.age = age;

}

public void talk(String msg)

{

System.out.println(msg + "! 大家好, 我是 " + name + ", 我年齡是 " + age);

}

}

2.3 代理類TalkProxy

public class TalkProxy implements Italk

{

private Italk talker;

public TalkProxy(Italk talker)

{

this.talker = talker;

}

public void talk(String msg)

{

talker.talk(msg);

}

public void talk(String msg, String singname)

{

talker.talk(msg);

sing(singname);

}

private void sing(String singname)

{

System.out.println("歌的名字是:" + singname);

}

}

2.4 測試類:

public class Test

{

public static void main(String[] args)

{

Italk person = new Person("張三", "20");

person.talk("hi");

System.err.println(">>>>>>>>>>>>>>>");

TalkProxy talker = new TalkProxy(person);

talker.talk("hi", "<<歌唱祖國>>");

}

}

2.5 代碼分析

代理分為靜態(tài)代理和動態(tài)代理,上面的例子是靜態(tài)代理,后面的文章我會再寫一下關(guān)于動態(tài)代理,以及使用ASM生成代理類的例子。

藍鷗培訓(xùn)http://sh.lanou3g.com/致力于Java培訓(xùn),大數(shù)據(jù)培訓(xùn),HTML5前端培訓(xùn),VR游戲開發(fā)培訓(xùn)等IT培訓(xùn)課程 ,現(xiàn)所有課程可申請免費試聽兩周,試聽期間不收費,選擇藍鷗,不止高薪更是高起點!

詳情咨詢:021-37652263,15800649059(沈老師) QQ:2161519036

我要發(fā)表評論