カプセル化とは、各クラスをサービスを提供するマシンと考える必要があることを意味します。たとえば、椅子に座ると座ることができ、芝刈り機を使用すると芝生を刈ることができます。
プライベートメソッドは、マシンの内部動作に関連しています。対照的に、パブリックメソッドは、ユーザー (他のクラス) がマシンと対話する方法に関連しています。
例 1: 椅子...
椅子に座っているときは、詰め物の量やホッチキスの数を知る必要はなく、基本的には占有されているかどうか、安定しているかどうかを知る必要があります。
- パブリック メソッド: IsStable、IsOccupied、Sit
- プライベート メソッド: CalculateStuffingVolume、CountNumberOfStaples
例 2: 芝刈り機...
芝刈り機の場合、十分な燃料がある (またはプラグが差し込まれている) かどうか、ブレードが鋭利であるかどうか、電源を入れることができるかどうかを知る必要があります。
- パブリック メソッド: GetFuelLevel、IsBladesSharp、TurnOn、TurnOff
- プライベート メソッド: Combust など、想像するには多すぎます。
結論:
だから、あなたが開発しているとき、あなたが見るのは...
例 1: Chair.Sit、Chair.IsStable、Chair.IsOccupied
また
例 2: Lawnmower.GetFuelLevel、Lanmower.IsBladesSharp、Lawnmower.TurnOn、LawnMower.TurnOff
開発者は、布張りの糸の数、燃料キャップの色、ブレードの回転数、または椅子が接着されているかホッチキスで留められているかについて考える必要はありません。この違いにより、詳細に圧倒されることなく、アプリケーションを簡単にまとめることができます。さらに、プログラマーは必要な情報のみを公開できるため、セキュリティ レベルが向上します。John が述べたように、これにより Person クラスが Lawnmower.Combust(fuel) を呼び出すことが想定されていないときに呼び出されなくなります。