クラスを物理的にグループ化する方法、つまり継承、構成などを理解しています。しかし、名前空間(クラスの論理的なグループ化)の利点を本当に理解したことはありません。私は通常、プレゼンテーション層用の名前空間、ビジネスロジック層用の名前空間、およびデータアクセス層用の名前空間を持っています。
com.Application.BusinessLogicLayer
com.Application.PresentationLayer
com.Application.DataAccessLayer
プレゼンテーション層には、VB.NETアプリやASP.NETアプリなどの複数のアプリが含まれる場合があります。ビジネスロジック層が複数のDLLに分割される場合があります。
名前空間とは何かに関する試験の質問に答えることはできますが、問題のあるドメインに知識を適用するのは困難です。たとえば、以下のコードを見てください。
Namespace com.application.businesslogiclayer
Public Class ClassA
Private CB As ClassB
End Class
End Namespace
Namespace com.application.businesslogiclayer
Public Class ClassB
Private CC As ClassC
End Class
End Namespace
Namespace com.application.businesslogiclayer
Public Class ClassC
End Class
End Namespace
ClassAはClassBと構成関係を持ち、ClassBはClassCと構成関係を持っているので、それらはすべて同じ名前空間に属する必要があると思います。
com.application.businesslogiclayer.classABC
。ただし、「Import」ステートメントを使用して他のクラスを取り込むことができるため、これは正しくない可能性があります。
名前空間を設計するときに開発者はどのような基準を使用しますか?