2009-10-07 66 views
-1

我在找一個開源的java應用程序(C#應用程序也行),要學好&明白好面向對象的設計。好Java學習應用程序OOD

具體而言,我正在尋找與關係數據庫的交互,以便我能夠理解將OO設計轉換爲非OO結構的更精細的細節。

我看了一些ORM示例。雖然他們教授良好的面向對象設計,但是發生了太多奇蹟,隱藏了很多關於數據庫交互的細節。

你有什麼建議嗎?

+0

這個問題的答案提供了很多體面的C#示例:http://stackoverflow.com/questions/563030/where-can-i-find-a-good-nhibernate-and-asp-net-mvc-參考應用。 – 2009-10-07 14:14:11

+0

@Shaw:ORM不太可能教會你很好的面向對象設計,因爲ORM基本上是一個簡化兩個完全正交的概念之間管道的工具:OO和RDB。關於這個問題的啓發文章由Ted Newards稱爲*「越南的計算機科學」*(即ORM):http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science。 ASPX – SyntaxT3rr0r 2010-03-16 20:08:31

回答

1

ORM的只是數據庫和代碼對象之間的映射。如果你設置並使用一個,你會「感覺到」它,而且它看起來不那麼「神奇」。

這是一個建議 - 使用Hibernate建立一個簡單的項目,首先使用單個表格,然後使用關係示例(需要連接的項目)。 Hibernate可以配置爲在查詢運行時記錄查詢,這樣你就可以看到它是如何翻譯的。

另一個選擇是用幾個框架來運行類似的練習,例如, rails activerecord(這很容易設置)。 (可能有點高級)嘗試寫你自己的,也許不是全面的處理多對多配置的東西,而只是將API請求映射到生成的數據庫查詢,並創建輸出中的一個對象。這肯定會揭開這個過程的神祕面紗。

0

參見Collections Framework

對於某些規則的例外(堆棧執行例如)它顯示的應用的設計模式(策略,迭代器,等等)的一些真正的好例子,封裝,算法,組合物,代碼複用此外,教自己的泛型是一個很好的開始。通過閱讀它的來源而不是任何書籍瞭解更多關於模式和算法的知識。