OODの経験則は、合理的に達成できる限り、特定のオブジェクトのすべてのメンバーへのアクセスを最小限に抑えることであることを理解しています。
C#とJavaはどちらも、同じアクセス修飾子のセットを実装しているようです。ただし、しばらくの間私を当惑させたのは、Javaクラスがほとんどパブリックとして宣言されているように見えるのに対し、C#クラスはほとんどデフォルトとして宣言されているように見える理由です。 これらの言語にこれらの違いを課す微妙な点はありますか、それとも単に慣習の問題ですか、それとも何ですか?
コンパイラを喜ばせるために、C#コード(内部クラス、匿名クラス、および範囲が狭く有用な他のクラスを除くほとんどのクラスを習慣的に公開しています)を頻繁に使用していますが、何かが足りないのではないかと思います。重要。