《原神攻略》蒙德特產風車菊採集路線
1.概念
2.使用代理模式的作用
3. 實現代理的方式
1. 靜態代理
1)代理類是自己手工實現的,自己建立一個java類表示代理類
2)同時你所要代理的目標類是確定的。
優點: 實現簡單 容易理解
缺點:1)當目標類增加了,代理類可能也需要成倍的增加
2)當你的介面中的功能增加了 或者修改了 會影響眾多的實現類
示例:模擬使用者購買u盤
使用者:客戶端類
廠家:目標類
商家:代理類 代理某個品牌的u盤。
程式碼:
/*
實現步驟:
1.建立介面 定義賣u盤方法 表示你的廠家和商家做的事情
2. 創建廠家類 實現1介面
3. 建立商家代理類 實現1介面
4. 建立客戶端類 呼叫商家方法買1個u盤
*/
publicinterface UsbSell {// amount:一次購入的數量 返回值表示1個u盤的價格float sell(int amount);
// 還可以定義多個其它方法
}
// 目標類:金士頓廠家 不接受使用者單獨購買publicclass UsbKingFactory implements UsbSell{
@Override
publicfloat sell(int amount) {
// 一個u盤85.0
// 後期根據amount可以實現不同的價格
return 85.0f;
}
}
// 商家 代理金士頓u盤的銷售
publicclass TaoBao implements UsbSell{
// 宣告 商家代理的廠家具體是誰
private UsbKingFactory factory = new UsbKingFactory();
@Override
publicfloat sell(int amount) {
// 向廠家傳送訂單
float price = factory.sell(amount);
// 商家需要加價
price = price+5;
// 這裡可以新增其它程式碼 進行功能增強
return price;
}
}
publicclass ShopMain {
publicstaticvoid main(String[] args) {
// 代理物件 淘寶
TaoBao taoBao = new TaoBao();
float price = taoBao.sell(1);
System.out.println("通過商家淘寶 購買u盤單價:"+price);
}
}
代理類完成的功能
1. 目標類中方法的呼叫(控制訪問)
2. 功能增強
2. 動態代理
優點:避免靜態代理的缺點。目標類即使很多 代理類數量可以很少 當你修改了介面中的方法時,不會影響代理類。
概念:在程式執行過程中,使用jdk反射機制,建立代理類,並動態指定要代理的物件。 即你不用手動建立TaoBao類就能建立代理物件
分類:
JDK動態代理
以上是 《原神攻略》蒙德特產風車菊採集路線 的全部内容, 来源链接: utcz.com/yxgl/576315.html