欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 代理模式和委托模式

林玟書2年前8瀏覽0評論

在Java語言中,代理模式和委托模式是兩種常用的設計模式,它們都是用于在一個對象(被委托或被代理者)與其他對象進行互動時提供更加優良的解決方案。下面分別介紹一下兩種模式的具體實現。

代理模式:
public interface Subject {
void request();
}
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject: handling request.");
}
}
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
}
}
上述代碼實現了一個簡單的代理模式。在此模式中,使用Proxy類來間接訪問RealSubject對象。客戶端只與Proxy對象交互,而不直接與RealSubject對象交互。Proxy對象持有RealSubject對象的一個引用,并通過此引用來調用RealSubject對象的方法。 Proxy類可以對客戶端進行一些額外的控制,比如權限控制、流量控制等。
委托模式:
public interface Eating {
void eat();
}
public class ChineseEating implements Eating {
@Override
public void eat() {
System.out.println("I'm eating Chinese food.");
}
}
public class AmericanEating implements Eating {
@Override
public void eat() {
System.out.println("I'm eating American food.");
}
}
public class Person {
private Eating eating;
public void setEating(Eating eating) {
this.eating = eating;
}
public void eat() {
eating.eat();
}
}
上述代碼實現了一個簡單的委托模式。Person對象委托Eating對象來完成吃飯的行為,并使用setEating()方法將Eating對象注入到Person對象中。客戶端通過Person對象來調用吃飯的方法,由于委托的存在,Person對象將真正的吃飯行為委托給了Eating對象,從而實現了真正的行為執行。委托模式的優點是可以將不同的實現方式委托給不同的對象來完成,從而實現更加靈活的編程方式。