投稿数 - 437, コメント - 59540, トラックバック - 156

family

名前空間をきっちり分けると名前の衝突に気を使わなくていい。
しかし、開発中に(末端アプリケーション)、同じ名前空間に属していないからって同じ名前を使うか?
そう考えて、プロジェクトの中(いちアセンブリ)のクラスは、一つの同じ名前空間に属させる人も多いかもしれない。

しかし名前空間の効用はそれだけではない。

family class ClassA
{
 …
}
こうする事によって、同じアセンブリ、且つ同じ名前空間のものにしかアクセスできないのだ。
アクセスを制限したいクラスのために、ワザワザ別アセンブリにする必要はない。

public class ClassA
{
 family ClassA(){}
}
こうすると、ClassA をインスタンス化できるのは、同じアセンブリ、且つ同じ名前空間のものだけだ。

名前空間を積極的に分けたくなっただろう?

# フィクションです。

投稿日時 : 2005年11月17日 0:38

フィードバック

# re: family

これって、@IT の某スレを受けてのことですかね? (w
名前空間は CompanyName.Technology がガイドラインとされていますが、パッケージ物にだけで使うものでもないんですよね。

私は、.NET Framework にならって、
 Jeanne.IO. とか、
 Jeanne.Windows.Forms とか、
に分けています。
2005/11/17 12:01 | じゃんぬ

# re: family

>これって、@IT の某スレを受けてのことですかね? (w

いやw
本当に名前空間内だけでアクセス制限できるものがあればなぁと思いまして。で、Friend より制限のキツイ(同じアセンブリ且つ同じ名前空間)という意味で family かな、とw。
(友達より家族の方がより内側・・・かな)
(実は私が知らないだけである?)

>私は、.NET Framework にならって、
私もそんな風にしますねー。
2005/11/17 12:45 | 囚人

# re: family

> いやw

(´・ω・`)しょぼんぬ。

Family ですか、なるほど。

そういえば、C++ での Friend メソッド (禁じ手) は VB での Friend とは意味が違いますね。
「家族ぐるみで」くらい気を許している友人という解釈だそうで...
家族ぐるみといってるのは、クラスに対して全体を指しているのでしょうね。

そういう意味で、VB6 で Friend を見た時意味が判らなかった... orz
2005/11/18 11:21 | じゃんぬ

# re: family

C++ での Friend はあっても良かったかも、と思うときがありますね。
最近は Family より Friend の方が気を許している人が多いでしょうから、そのうち入れ替わったりしてw
2005/11/18 21:15 | 囚人

# re: family

IL レベルでは Family ってアクセス権がありましたよね、確か。
2005/11/29 11:13 | シャノン

# re: family

>IL レベルでは Family ってアクセス権がありましたよね、確か

実はその通りです。
確か、C# でいう protected がそれにあたるかと。

ということは、Family は誤解を生みますね。
何がいいかな・・・。
2005/11/29 11:41 | 囚人

コメントの投稿

タイトル
名前
URL
コメント