為什么訪問者模式中訪問者類要依賴Element的具體實作類呢?依賴Element的抽象類不行么?這樣不就不用違反依賴倒轉原則了么?有大佬能解惑一下么?
uj5u.com熱心網友回復:
你說的是這個訪問者模式嗎?
這里的Element和Visitor都是構想類呀
實際應用中應該至少有一個是抽象的。
uj5u.com熱心網友回復:
對,是這個。我網上看的各種資料都是顯示visitor要依賴具體的element實作類,訪問者模式的缺點也是對外暴露了類的細節,違背了迪米特法則。我自己畫類圖的時候就是畫成你這樣的,后來看到網上其他人的博客才知道這個問題,我就不太能理解了。這個模式看起來完全可以依賴抽象類或介面啊,不知道是不是有什么我沒考慮到的原因
uj5u.com熱心網友回復:
我都沒仔細看,你這個類圖里面visitor里面visit方法中傳入的也是ElementA,ElementB兩個Element類的實作類。我就是不知道為什么這里不能直接用Element抽象類來接收
uj5u.com熱心網友回復:
我還沒有太注意我的這個截圖,確實不應該這么干。這個不是正確的用法。正常情況應該是
public class Visitor {
void visit(Element e);
}
我截圖的那種設計不正確
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146470.html
標籤:Java相關
上一篇:Elasticsearch中的Innerhits中的資料怎么獲取
下一篇:事務回滾不了的問題
