Q
根據SOLID
0
A
回答
1
我也會爭辯說,你提供的信息太少,無法理解什麼是最好的。
我不記得固體原則說什麼冗餘本身,但有乾的原則。
我發現冗餘的是,如果你在多個地方做一件事情,如果你需要改變一些東西,你必須記住要更新所有的地方。如果你忘記了一個地方,那麼你的系統就會有不一致的地方,至少有兩種方法來做(概念上)同樣的事情。
這通常會導致一些並不總是很容易找到的錯誤。
當然,這很容易解決,只是沒有冗餘;在做一些事情之前,看看功能是否已經在你的系統中,如果不尋找相關的東西並試圖推廣它。
0
「這將是最好創建一個新的類,即Settings.java與 文件路徑爲成員變量」
不,我不認爲會更好。沒有更多的細節,這很難,但我可能會創建一個接口,稱爲像ISettings,並使用DI注入到必要的類。
我認爲這會更符合SOLID。
1
不要重複自己是單一責任原則的「另一面」。 SRP指出,一個班級應該只有一個改變的理由。 DRY指出,事實上應該有單一的事實根源,所以如果你改變一個事實,那麼依賴於這個事實的每一件事都會受到你的一個改變的影響。
在你的情況下,它取決於你的每個類的使用filepath
。如果這些文件必須具有共同的路徑才能滿足特定的業務需求,則它們都應該引用單個定義,並將其保留在包含該要求的某個位置。否則,他們可能應該有獨立的聲明,否則你會發現他們不會很可重用。
相關問題
- 1. SOLID,MasterPages和ASCX?
- 2. word interop solid lines
- 3. Highchart Solid Gauge Responsive
- 4. dygraphs fillGraph solid
- 5. Laravel的SOLID
- 6. Android - 根據SOLID原則從活動中分離異步http代碼
- 7. 違反SOLID原則
- 8. Javascript - Solid Text Text Flash
- 9. 依賴注入/ SOLID憂慮
- 10. SOLID原理和GOF映射
- 11. SOLID里氏替換原則
- 12. SOLID和用戶界面?
- 13. 玩框架SOLID原則
- 14. Raycast Engine:渲染Solid Door
- 15. SOLID GRASP控制器模式?
- 16. 關於SOLID/TDD的問題
- 17. gow從JS變量中得到Highcharts solid Gauge數據?
- 18. 複合模式是否爲SOLID?
- 19. PHP中的類方法和SOLID原理
- 20. 將變量傳遞給highcharts solid gauge
- 21. 返回類型和SOLID的接口
- 22. S in SOLID - 你如何繪製線條?
- 23. 我的第一次SOLID重新分解
- 24. Visual Studio 2010的連接到Solid Works的
- 25. 使用的DbContext的SOLID方式
- 26. 這是DIP(SOLID)的有效用法嗎?
- 27. 如何測量C#代碼的SOLID?
- 28. 這違反了SOLID原則嗎?
- 29. SOLID原則,同時創建對象
- 30. SOLID編程原理的例子想要
我明白爲什麼'filepath'應該被視爲一個'interface'。不過,這是一個好主意,其中'filepath'可能對每個類都是唯一的,或者對每個類都是獨一無二的,因此如果需要的話,您可以知道在哪裏更改它。也許有一個非單實例/非靜態的可重用/動態類'Settings.java',其中'filepath'作爲變量也是有用的,因爲那麼很容易找到需要爲將來的開發做出所有變化的地方? – ThreaT