署理腳色java設計形式之靜態署理具體引見。本站提示廣大學習愛好者:(署理腳色java設計形式之靜態署理具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是署理腳色java設計形式之靜態署理具體引見正文
Java靜態署理形式
署理:一個腳色代表別一個腳色來完成某些特定的能功。
好比:臨盆商,中央商,客戶這三者這間的關系
客戶買產物不並直接與臨盆商打交道,也用不知道產物是若何臨盆的,客戶只與中央商打交道,而中央商即可以對產物行進一些包裝,供提一些售後的辦事。
署理形式有三個腳色: 1. 籠統主題腳色 2. 署理主題腳色 3. 際實被署理腳色
面下我們來個一個靜態署理的實際。
我以一個坦克為例。
籠統主題腳色:Moveable
package com.gjy.proxy;
public interface Moveable {
void move();
}
署理主題腳色:TanktimeProxy
package com.gjy.proxy;
public class TanktimeProxy implements Moveable{
private Moveable t;
public TanktimeProxy(Moveable t) {
super();
this.t = t;
}
@Override
public void move() {
long time1 = System.currentTimeMillis();
System.out.println("time1="+time1);
t.move();
long time2 = System.currentTimeMillis();
System.out.println("time2="+time2);
System.out.println("運轉間時為:"+(time2-time1));
}
}
際實被署理對象:Tank
package com.gjy.proxy;
public class Tank implements Moveable{
@Override
public void move() {
System.out.println("TanK moving........");
}
}
測試:
package com.gjy.proxy;
public class TestTank {
public static void main(String[] args) {
Tank t = new Tank();
Moveable move = new TanktimeProxy(t);
move.move();
}
}
面下我想在TanK的move()辦法前後加上日志:
我必需再寫一個類來實際這一能功:
package com.gjy.proxy;
public class TanklogProxy implements Moveable{
private Moveable t;
public TanklogProxy(Moveable t) {
super();
this.t = t;
}
@Override
public void move() {
System.out.println("start move........");
t.move();
System.out.println("end move......");
}
}
測試:
package com.gjy.proxy;
public class TestTank {
public static void main(String[] args) {
Tank t = new Tank();
Moveable move = new TanktimeProxy(t);
Moveable movet = new TanklogProxy(move);
movet.move();
}
}
如許我經由過程署理在Tank的move()辦法前後入加了日志和間時統計的能功,因為TanktimeProxy,TanklogProxy都實際了Moveable口接,所以TanklogProxy可以署理TanktimeProxy,反過去也能夠,它們對Tank的署理順序是可以交流的。
假如我想在Tank的move()辦法用調的前後入加更多的能功,能否是要寫更多的署理主題腳色,這子樣會使得碼代過於臃腫,不容易於保護,那有無甚麼辦法可以處置呢,案答是可以的,我們可以靜態的來成生署理主題腳色,來署理全體的被署理對象,這就是靜態署理。
文章停止給年夜家分享下法式員的一些笑話語錄: IBM和波音777
波音777是有史以來第一架完整在電腦虛擬實際中設計制作的飛機,所用的裝備完整由IBM公司所供給。試飛前,波音公司的總裁異常熱忱的約請IBM的技巧主管去加入試飛,可那位主管卻說道:“啊,異常幸運,惋惜那天是我老婆的誕辰,So..”..
波音公司的總載一聽就朝氣了:“怯弱鬼,我還沒告知你試飛的日期呢!”