我對GOF和GRASP模式之間的區別感到困惑嗎? 甚至都有助於改進面向對象的實踐GOF和GRASP設計模式之間的區別是什麼
5
A
回答
9
GOF是模式,即經過驗證的設計解決方案,以解決重複出現的問題。 GRASP are principles,並且不依賴於任何特定的問題域,因此真正在任何情況下
0
簡答:
四人幫被提到設計模式。並且GRASP是設計原理。設計原則比設計模式更抽象。
龍回答:
軟件工程的主要目的是開發一個合適的軟件。 SDLC介紹了軟件工程在頂層的步驟。 Software Design是SLDC步驟之一。而Object Oriented Software Design是軟件設計的流行方法。
要進行面向對象的軟件設計,有很多方面的資源(書籍,教程和文章)以不同的名稱,如:指導思想,原則,啓發式,圖案,款式等
的它們之間的差異是抽象。頂層是主要原則,其他層次是有助於實現這些主要原則的細節。
頂級
在頂層,教程介紹主要原則。 (基於面向對象分析與設計應用,格雷迪Booch的,等1991)
面向對象的主要原則
- 抽象
- 封裝(信息隱藏)
- 層次(繼承,聚合)
- 模塊化(高內聚,鬆耦合)
所有subsequ原則和模式與這個主要原則有關,並試圖支持和改進它們。
二級
在資源的第二級有原則,努力支持和改善面向對象的主要原則。
- SOLID堅持的原則
- GRASP原則
- Law of Demeter-LoD
- 等。(其他單一命名原則喜歡LOD)
第三級
這種資源水平稱爲設計Patters。 Gof(四人幫)有關於設計模式的第一本書。有23種設計模式支持面向對象設計的主要原則和其他原理。
後GoF的,寫在特定的編程語言和特定的框架(如J2EE屈尊模式,JQuery的設計模式等)
設計模式設計模式的使用很多書都比較詳細,如此接近的編程語言。但是,主要原則(頂層)和原則(二層)太抽象了。
第四層
在這個層面上,資源稱爲:啓發式。
這個級別的資源是如此詳細和非常具體比其他羣體。
最好的資源是面向對象設計的啓發式(72個啓發式),圖書由Arthur J.瑞爾,1996
五級
在最後一級,有指南。
所有做它,不這樣做,避免,...在書本準則可以收集這一組。
相關問題
- 1. r +和w +模式之間的確切區別是什麼?
- 2. ++和:haskell之間的區別是什麼?
- 3. $(())和expr之間的區別是什麼?
- 4. $(...)和`...`之間的區別是什麼
- 5. [undefined]和[,]之間的區別是什麼?
- 6. 設計模式和架構模式有什麼區別?
- 7. 享元設計模式和Java緩存之間的區別
- 8. 區別:%% a和%variable%變量之間的區別是什麼?
- 9. 什麼是產量和包含的模板之間的區別
- 10. 假脫機和設備隊列之間的區別是什麼?
- 11. 模型和算法之間的確切區別是什麼?
- 12. Flex:MXML「組件」和MXML「模塊」之間的區別是什麼?
- 13. 正則表達式中(。*)和(。*?)之間的區別是什麼?
- 14. 語法和s表達式之間的區別是什麼
- 15. 特殊形式和宏之間的實際區別是什麼?
- 16. Builder,Factory Method和Abstract Factory模式之間有什麼區別?
- 17. MVC和MVVM之間的區別和相似之處是什麼?
- 18. 界面和設計模式有什麼區別?
- 19. Facade和Gateway設計模式有什麼區別?
- 20. Spring singleton和Java singeleton(設計模式)有什麼區別?
- 21. 設計和建築模式有什麼區別
- 22. 策略和工廠設計模式有什麼區別?
- 23. 工廠和管道設計模式有什麼區別?
- 24. TVF/UDF之間的區別是什麼
- 25. [EmailPasswordAuthProvider,EmailAuthProvider]之間的區別是什麼
- 26. 編程範式,設計模式和應用架構之間的區別?
- 27. 適配器和代理模式之間的確切區別是什麼?
- 28. AEM中當前樣式和當前設計之間的區別
- 29. dpm()和dsm()之間有什麼區別?
- 30. @dynamic和@synthesize之間有什麼區別?