1

最近、中規模のアプリケーションをリファクタリングしました。仕事の1つは、一般的に使用されるコードをさまざまなプロジェクトに分割することでした。

さて、一般的に使用される名前空間構造は

Core.Interfaces-のインターフェイスを持つメインアプリケーションの場合IFoo

そして、それぞれの特殊な/外部の/参照されたアセンブリについて、私はそれを拡張することにしました。

Core.Interfaces.Html のインターフェースでIBar

メインアプリケーションのCoreアセンブリはCore、デフォルトの名前空間で名前が付けられたプロジェクトにありますCoreが、HtmlアセンブリHtmlCoreでは、デフォルトの名前空間で名前が付けられたプロジェクトを作成しましたCore

結果の効果(および私がこの特定の方法論を選択した理由)は、Htmlアセンブリを参照した後は、usingステートメントを更新する必要がなく、正味の効果は次のようになることです。

Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;

または上記のusingステートメントを使用して次Core.Interfacesのように変換されます

IFoo fooIf;
Html.IBar barIf;

この暗黙の名前空間構造は依存関係の直接の結果であり、プロジェクトの名前空間の保守がはるかに簡単になり、誰かが持っている必要があるのはアセンブリへの参照だけであるため、実際に役立ちました。構造は、Microsoftが.netフレームワークですでに行っているものと似ています。

問題は、私には考え直しがあり、(将来のプロジェクトのために)次のような各アセンブリに対して明示的な名前空間構造を検討しているということです。

Core.DataInterfaces
Html.Core.DataInterfaces

それで、誰かが明示的な構造で作業したことがありますか、両方、または私が試したことのない何か他のものでさえありますか?私は提案を受け入れており、開発中のチームのメンテナンスや混乱から時間を解放することが目標であるため、最善の解決策を探しています。

4

1 に答える 1

1

プロジェクトに適していると思われる名前空間を整理します。名前空間は、名前の衝突を避けるための論理的な分離のためのものですが、コードを整理するのに明らかに最適です。

いつでもusingsにエイリアスを与えることができることを忘れないでください。

于 2011-02-01T18:06:05.220 に答える