オブジェクト指向の優れた設計を学び、理解するために、オープン ソースの Java アプリケーション (C# アプリケーションも可) を探しています。
具体的には、OO 設計を非 OO 構造に変換する際の詳細を理解できるように、リレーショナル データベースとの相互作用を探しています。
いくつかの ORM サンプルを見てみました。彼らは優れた OO 設計を教えていますが、あまりにも多くの魔法が起こっており、データベースの相互作用に関する多くの詳細が隠されています。
何か提案はありますか?
オブジェクト指向の優れた設計を学び、理解するために、オープン ソースの Java アプリケーション (C# アプリケーションも可) を探しています。
具体的には、OO 設計を非 OO 構造に変換する際の詳細を理解できるように、リレーショナル データベースとの相互作用を探しています。
いくつかの ORM サンプルを見てみました。彼らは優れた OO 設計を教えていますが、あまりにも多くの魔法が起こっており、データベースの相互作用に関する多くの詳細が隠されています。
何か提案はありますか?
Dofactory 設計パターンは、オブジェクト指向設計の良い例を示しています: http://dofactory.com/Patterns/Patterns.aspx
ORM は、データベースとコード オブジェクト間の単なるマッピングです。セットアップして使用すると、「感覚をつかむ」ことができ、それほど「魔法」とは思えません。
ここに提案があります - Hibernate を使用して単純なプロジェクトをセットアップします。最初は 1 つのテーブルだけで、次にリレーショナルの例 (結合が必要なもの) を使用します。Hibernate は、実行時にクエリをログに記録するように構成できるため、クエリがどのように変換されているかを確認できます。
もう 1 つのオプションは、セットアップが非常に簡単な rails activerecord() など、いくつかのフレームワークで同様の演習を実行することです。
その後、(おそらく少し高度な)独自のものを作成してみてください。多対多の構成を処理する本格的なものではないかもしれませんが、API リクエストを生成されたデータベース クエリにマップし、出力。これは間違いなくプロセスをわかりやすく説明します。
ルールのいくつかの例外 (スタックの実装など) を除いて、適用された設計パターン (戦略、イテレーターなど)、カプセル化、アルゴリズム、構成、コードの再利用などのいくつかの実際の良い例を示しています。自分でジェネリック。どの本よりもソースを読むことで、パターンとアルゴリズムについてより多くのことを学びました。