2009-07-08 20 views
0

私は、アクセス修飾子をメンバー/タイプに正しく適用する方法を理解するのに役立つリソースを探している学生です。アクセス修飾子の適切な適用

私は、どのような制限がprivate、public、protectedなどの修飾子にアクセスするのかを知っています。自分の小さなプロジェクトをコーディングするとき、私はすべてを公開する傾向があります。私はこれがウィンドウの外にカプセル化を投げ込むだけであることは絶対に恐ろしい習慣であると確信しています。私は内部対個人のようなものを使うのが正しいのはいつか分かりません。

アクセス修飾子の適切な使用方法を理解するのに役立つリソースはありますか?

答えて

2

これは体験タイプの質問です。最低限の特権レベルから始め、必要に応じて昇格してください。

つまり、すべてをプライベートにします。あなたが保護されているか公的に昇格される必要があることを発見するまで。時間が経つにつれて、あなたのクラスの意図された、そして後に発見された使用法に対する感触が得られます。

0

すべてをプライベートにすることを開始します。必要があると感じたら、適切なタイプを選択する気持ちになるまで、修飾子を適宜変更してください。

TDDを使用してみてください、物事を簡単にするために、またはあなたはユニットテストを書くために取得するときには、さらに多くのトラブルに巻き込まれるかもしれません...

0

私は単純に、できるだけ制限のすべてのアクセスを行います。

  • それはアセンブリ
  • 外部に露出するAPIだ場合は、このアセンブリ
  • または、公共の内の他のクラスにさらされるAPIです。そうでない場合、内部のデフォルト
  • によってプライベート
  • または、サブクラスからのみ呼び出される場合は保護されます。
0

チュートリアルや教材の種類によって、同じ指針、つまり他の投稿が既にあなたに与えた指針が与えられます。したがって、この特定の問題には、 "リソース"から多くの有益な情報を期待しないでください。

これを超える主なリソースは、他の人が書いたコードです。大規模なC#プロジェクト(例:Mono、またはSharpDevelop)をとり、彼らがあなたに説明された原則に具体的にどのように従っているかを調べます。また、設計する特定のクラスをお持ちの場合は、システムライブラリで同様のクラスを考え、実装方法を調べてみてください(Monoソースを参照するか、.NETリフレクタを使用してください)。

0

クラスのインターフェイス、つまりその目的を達成するために必要な十分なルーチンのインターフェイスについて考えてみることをおすすめします。公開する。他のすべてはプライベートでなければなりません。

0

私は公開されていないすべてのものを保護する傾向があります。私のクラスのユーザーが望むことを自由にすることができます。彼らのクラスが壊れた場合、それは彼らの問題だろう。

クラスを継承するたびに、oopが実装を隠そうとしていても、どのように動作するのかを知る必要があります。実装を隠すことはできますが、ドキュメントを非表示にすることはありません。