私は通常、次の方法でアプリケーションを設計していることに気づきました。
- 必要なサブシステムのインターフェースを含む1つのDLL。たとえば、
Company.Framework.Persistence.dll
。 - 上記のサブシステムの各戦略(または実装)ごとに1つの新しいDLL 。例えば:
Company.Framework.Persistence.MSSQL.dll
Company.Framework.Persistence.MySQL.dll
Company.Framework.Persistence.FileSystem.dll
これにより、多くのプロジェクトで非常に大きなソリューションが得られますが、一方で、消費者は自分のニーズに適したDLLを選択する機会が与えられます。
と呼ばれる単一のDLLがある場合Company.Framework.Persistence.dll
、消費者は彼が決して使用しない可能性がある多くの戦略をロードする必要があります。DLLをモジュール化すると、この問題を解決できます。
これは良い習慣ですか?この設計には欠点がありますか?