トップレベルの名前空間にはどうすればいいですか?たとえば、MyAPI.WebLogic、MyAPI.Compressionなどがある場合。トップレベルの名前空間にクラスを配置すると、カプセル化の原則に違反しますか?トップレベルの名前空間にはどうすればいいですか?
答えて
クラスが何であるかによって異なります。
私が従うことを試みる1つのガイドラインは、名前空間間の依存関係がサイクルをたどるべきではないということです。言い換えれば、低レベルの名前空間は、より高いレベルの名前空間からの型にアクセスすることができません。
これはトップレベルMyAPI名前空間はどちらか含まれていなければならないことを意味します
- ハイレベルのコード:MyAPI.WebLogicとMyAPI.Compression
- あるいは、低レベルのコード内検索ができますコードを:MyAPI.WebLogicで使われているコードおよび/またはMyAPI.Compression
パトリックSmacchiaはこのサイトに含めて、このようにあなたのコードを構造化することの利点について多くのことを書かれています:Detecting dependencies between namespaces in .NET
本当に名前空間が何であるかによって異なります。そのアプリケーションの場合、bootstrapperクラス、ローダーetx、Mainなどのようなものであれば、(すべての場合と同様に) "それは依存している"と言います。
名前空間は、カプセル化などのOOP関連の概念ではありません。組織では、アプリケーションに意味をなさない方法で整理します。ウェブサイトで行う仕事のほとんどはビジネスライブラリを持ち、ほとんどの場合、すべてが単一の名前空間の下に隠されています。
私はあなたが本当にカプセル化に違反しているとは思わない。
通常、名前空間はクラスを整理して見つけやすくするためのものであり、アプリにとって意味のあるものです。
カプセル化に違反しているわけではありません。実際には、名前空間がOOP固有のものではなく、カプセル化と呼ばれることさえ確実ではありません。
ルールは、トップレベルの名前空間に属していると感じる場合は、単純にその型をトップレベルの名前空間に配置することです。この状況の明白な例は、MyAPI.WebLogicとMyAPI.Compression(おそらく他のものと同様)がすべて特定の型を利用する必要があるため、MyAPI.WebLogicとMyAPI.CompressionはMyAPIに配置するのがベストです。まだ何が所属しているのか分からない場合は、Microsoftライブラリを例として使用してください。 BCL内のSystem
名前空間にはたくさんのクラスがあります。
- 1. jqueryウィジェットの名前空間にはどうすればよいですか?
- 2. 名前が空でない名前空間から名前を削除するにはどうすればいいですか?
- 3. 良い名前空間名を選択するにはどうすればいいですか?
- 4. クラス名と名前空間の競合を避けるにはどうすればいいですか?
- 5. サブ要素に空の名前空間 "xmlns =" ""を取り除くにはどうすればよいですか?
- 6. argparseと別の名前空間にサブパーサー引数を入れるにはどうすればいいですか?
- 7. abc名前空間のアプリケーションを使用している場合、名前空間を変更するにはどうすればよいですか?
- 8. JAXB Marshaller - xmlns名前空間の属性を抑制するにはどうすればいいですか?
- 9. jquery名前空間の衝突を処理するにはどうすればいいですか?
- 10. コマンドラインからXSDObjectGenに2つの名前空間を渡すにはどうすればよいですか?
- 11. figwheelをカスタム初期名前空間で始めるにはどうすればいいですか?
- 12. mocファイルでカスケードされた名前空間を使用するにはどうすればよいですか?
- 13. roslynでプロジェクトのデフォルトの名前空間を取得するにはどうすればよいですか?
- 14. コンソールアプリケーション内からプロパティ名前空間にアクセスするにはどうすればよいですか?
- 15. 私はClojurescriptプログラム内でClojurescript名前空間を取得するにはどうすればよいですか?
- 16. BeautifulSoup4でxmlタグの名前空間を指定するにはどうすればよいですか?
- 17. lxmlのfind/findallでxml名前空間を使用するにはどうすればよいですか?
- 18. 名前空間のコンテキスト内でクロージャーデータ構造を評価するにはどうすればよいですか?
- 19. 複数の名前空間宣言をXDocumentに追加するにはどうすればよいですか?
- 20. プログラムの名前空間にフォルダを追加するにはどうすればよいですか?
- 21. Python名前空間パッケージのすべてのサブモジュールをインポートするにはどうすればよいですか?
- 22. 別の名前空間に同じクラス名がある場合、どうすればよいですか?
- 23. この名前空間の問題を解決するにはどうすればよいですか?
- 24. ウォッチウィンドウで名前のない名前空間の型にキャストするにはどうすればよいですか?与えられた
- 25. XML文書から名前空間を削除するにはどうすればよいですか?
- 26. PropertyInfoからWCF名前空間を特定するにはどうすればよいですか?
- 27. IronPythonインポート済みDLLの名前空間を設定するにはどうすればよいですか?
- 28. 名前空間の配列を作成するにはどうすればよいですか?
- 29. DelphiでWindowsシェル名前空間拡張を作成するにはどうすればよいですか?
- 30. Pythonで名前空間パッケージを作成するにはどうすればよいですか?