首先要搞清楚一個事情 我們學框架 是為了解決問題 而不瞭解問題的人 只會越用越糟所以看到題主的"問題" 反而更像是根據"答案"推導問題 所以我就只根據題主的字面意思回覆其中幾個事情
無論是工廠模式還是代理模式 都是解耦 只是解耦的角度不同 工廠模式是將定義與實現分離 不讓使用者依賴具體的實現 而代理模式則是將通用業務與核心業務解耦 兩種模式的目的都是為了提升開發效率和可維護性
這些方式不是一個人想出來的 是你進行開發的時候必然會遇到的問題 所以不是"學優秀思想" 而是 "體會和理解" 比如如果你不用工廠模式 你沒辦法得知整個專案中依賴某個實現的分佈情況 自然也就難以在不影響其他模組的情況下更新實現 再比如如果不用代理模式 意味著你要將很多通用行為硬編碼到每個模組中 也無法很好的更新實現 規範告訴我們怎麼做比較好 可以不做 但是要承擔後果
至於框架用到了哪些知識 我就理解成"框架用了哪些實現" 舉個栗子 Spring是如何在不更改程式碼的情況下將proxy與target建立聯絡的? 或Hibernate是如何透過註解將給每個實體類追加通用業務的(比如lazy load)? 你可以去看看asm或者cglib 看他們是如何透過這兩個元件實現動態代理的
首先要搞清楚一個事情 我們學框架 是為了解決問題 而不瞭解問題的人 只會越用越糟所以看到題主的"問題" 反而更像是根據"答案"推導問題 所以我就只根據題主的字面意思回覆其中幾個事情
無論是工廠模式還是代理模式 都是解耦 只是解耦的角度不同 工廠模式是將定義與實現分離 不讓使用者依賴具體的實現 而代理模式則是將通用業務與核心業務解耦 兩種模式的目的都是為了提升開發效率和可維護性
這些方式不是一個人想出來的 是你進行開發的時候必然會遇到的問題 所以不是"學優秀思想" 而是 "體會和理解" 比如如果你不用工廠模式 你沒辦法得知整個專案中依賴某個實現的分佈情況 自然也就難以在不影響其他模組的情況下更新實現 再比如如果不用代理模式 意味著你要將很多通用行為硬編碼到每個模組中 也無法很好的更新實現 規範告訴我們怎麼做比較好 可以不做 但是要承擔後果
至於框架用到了哪些知識 我就理解成"框架用了哪些實現" 舉個栗子 Spring是如何在不更改程式碼的情況下將proxy與target建立聯絡的? 或Hibernate是如何透過註解將給每個實體類追加通用業務的(比如lazy load)? 你可以去看看asm或者cglib 看他們是如何透過這兩個元件實現動態代理的
多做一些有意義的事情吧 自己去遇到問題並解決問題 而不是意淫出一坨不存在的事情去學習 沒任何意義