私は自分のレイヤーを可能な限り分離したいシステムに取り組んでいます.システムの残りの部分を大幅に変更することなく、データベースなどを切り替えることができるある種のモジュラーアプリケーション.
それで、私は x 間、Robert C. Martin のグッド プラクティス、クリーンなコード、デカップリング アーキテクチャなどについての講演の 1 つを見て、インスピレーションを得ました。私がちょっと変だと思うのは、彼のシステムの説明と、 s のFitnesse
ストア/ロード メソッドの実装方法ですWikiPage
。ビデオもリンクしています: Robert C. Martin - Clean Architecture and Design
彼が説明しているのは (少なくとも私の理解では)、エンティティは永続層から自身を格納およびロードする方法を認識しているということです。ウィキページをメモリ内に保存したいとき、彼は単純にウィキページをオーバーライドして、新しい を作成しましたInMemoryWikiPage
。それらをデータベースに保存したいとき、彼は同じことをしました...
私の質問の 1 つは、このアプローチを何と呼ぶかということです。私はリポジトリのパターンなどについてずっと学んできましたが、なぜこのような永続性を無視するようなクラスであるべきなのか、彼がしたことに関する資料を見つけることができないようです. 私のアプリケーションはモジュールで構成されているため、エンティティの集中ストアを作成する必要なく、これが問題を解決するのに役立つと思います...すべてのモジュールは、そのエンティティの永続性を含め、単にそれ自体を処理します。
コードは次のようになると思います。
public class Person : IEntity
{
public int ID { get;set; }
public string Name { get;set; }
public void Save()
{
..
}
public void Update()
{
}
public void Delete()
{
}
...
}
少し変な感じですが... それとも、彼がビデオで言ったことを誤解したのでしょうか?
2 番目の質問は、このアプローチに同意しない場合、そのようなモジュラー アプリケーションでどのような道をたどるかということです。
可能であれば、いくつかの説明とともに例を提供してください。