DLL作成の際、public class ばかリ作っていませんか? internal を有効に使い、外部に公開するクラスと公開しないクラスを明確に区別しましょう。
1つのDLL(クラスライブラリ)を例にします。このプロジェクトの中に次のように5つのクラスが存在するとします。
これらのクラスのアクセシビリティの設定でどのように変わるでしょうか。
| 全て public | internal を適切に使用 | |
|---|---|---|
| アクセシビリティ設定 |
|
|
| DLL外部からアクセス可能なクラス |
|
|
|
DLL使用時の VS.NET IDE 補完イメージ |
|
|
| DLL使用者の思い |
5クラス提供されている・・ ClassInternalx って何だ?? |
何事もなく使用・・ |
| 結論 | × | ○ |
このように internal を使用することで意図してクラスの隠蔽が可能です。
不要なクラスが公開されていると、開発者(DLL使用者)の誤使用、とまどいの元となります。
後で internal に変更すると、既に誰かが定義してしまっていてビルドエラー発生!ということにもなりかねません。
提供者は、常にクラスを利用する側のことを考え、最善の形で提供する必要があります。
公開するクラスは public、それ以外は全て internal でいいでしょう。