java中代理即Proxy Pattern,23種java常用設計模式之一。代理模式的定義:對其他物件提供一種代理以控制對這個物件的存取。
代理模式的主要作用是為其他物件提供一種代理程式以控制對這個物件的存取。 在某些情況下,一個物件不想或不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。 (建議學習:java課程)
#代理模式的想法是為了提供額外的處理或不同的操作而在實際物件與呼叫者之間插入一個代理物件。這些額外的操作通常需要與實際物件進行通訊。
介面類別
public interface Italk { public void talk(String msg); }
實作類別
public class People implements Italk { public String username; public String age; public String getName() { return username; } public void setName(String name) { this.username= name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public People(String name1, String age1) { this.username= name1; this.age = age1; } public void talk(String msg) { System.out.println(msg+"!你好,我是"+username+",我年龄是"+age); } }
代理程式類別
public class TalkProxy implements Italk { Italk talker; public TalkProxy (Italk talker) { //super(); 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); } }
應用端
public class MyProxyTest { /**代理模式 * @param args */ public static void main(String[] args) { //不需要执行额外方法的 Italk people1=new People("湖海散人","18"); people1.talk("No ProXY Test"); System.out.println("-----------------------------"); //需要执行额外方法的 TalkProxy talker=new TalkProxy(people1); talker.talk("ProXY Test","七里香"); } }
以上是java中代理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!