静的プロキシとスレッドの実装
静的プロキシを使用する
静的プロキシを使用する基本的な手順は次のとおりです。
1. プロキシ オブジェクトと実際のオブジェクトのパブリック インターフェイスを定義します。
2. 実際のオブジェクトはパブリック インターフェイスでメソッドを実装します。
3. プロキシ オブジェクトはパブリック インターフェイスでメソッドを実装し、メソッドのロジックを実際のオブジェクトに転送します。
結婚の例を通して静的プロキシを説明する
- あなた:本当の性格
- ウェディング会社:あなたの代わりに結婚式のお手伝いをします
- 結婚: 結婚インターフェイスを実装します。
**結婚インターフェイス**
interface Marry{
void HappyMarry();
}
本当の性格、結婚しなさい
class You implements Marry{
@Override
public void HappyMarry() {
System.out.println("小明结婚了");
}
}
ウェディング会社、代理店としてあなたの結婚をお手伝いします
class WeddingCompany implements Marry{
//代理睡--》真实目标角色
private Marry target;
public WeddingCompany(Marry target){
this.target = target;
}
@Override
public void HappyMarry() {
//结婚前
before();
//目标对象结婚
this.target.HappyMarry();
//结婚后
after();
}
private void after() {
System.out.println("结婚之后,收尾款");
}
private void before() {
System.out.println("结婚前布置现场");
}
}
ここのmain 関数は
ラムダ式を使用します
public class StaticProxy {
public static void main(String[] args) {
new Thread(()-> System.out.println("I Love You")).start();
new WeddingCompany(new You()).HappyMarry();
/* WeddingCompany weddingCompany = new WeddingCompany(new You());
weddingCompany.HappyMarry();*/
}
}
出力の
概要静的プロキシ モードの概要:
実オブジェクトとプロキシ オブジェクトは同じインターフェイスを実装する必要があり、
プロキシ オブジェクトは実際の役割を表す必要があります。
利点:
プロキシ オブジェクトは、実オブジェクトではできない多くのことを実行できます。
実オブジェクトは独自の処理に重点を置いています。