名前空間をきっちり分けると名前の衝突に気を使わなくていい。
しかし、開発中に(末端アプリケーション)、同じ名前空間に属していないからって同じ名前を使うか?
そう考えて、プロジェクトの中(いちアセンブリ)のクラスは、一つの同じ名前空間に属させる人も多いかもしれない。
しかし名前空間の効用はそれだけではない。
family class ClassA
{
…
}
こうする事によって、同じアセンブリ、且つ同じ名前空間のものにしかアクセスできないのだ。
アクセスを制限したいクラスのために、ワザワザ別アセンブリにする必要はない。
public class ClassA
{
family ClassA(){}
}
こうすると、ClassA をインスタンス化できるのは、同じアセンブリ、且つ同じ名前空間のものだけだ。
名前空間を積極的に分けたくなっただろう?
# フィクションです。