Facadeパターン 整合、隠蔽
Facadeクラスはあくまでサブシステム内部に仕事を投げるだけで複雑な実装は持たない。
多様な機能の塊であるサブシステムから、サブシステムを利用するユーザーの用途に合わせた窓口(インターフェース)を提供するだけである。
Facedeクラスをサブシステム自体が利用する事はない。
Facedeクラスはあくまでサブシステム末端の窓口であるため、同じサブシステムから利用される事はない。
Facedeパターンはサブシステムの直接使用を妨げない。
Facedeクラスの利用は強制ではなく、必要であればサブシステムの機能を直接利用できる。言語によっては無名名前空間やPackageスコープによりサブシステムを利用者から隔離できるが、Facedeパターンはそのような制限はしない。
===>内部の実現(publicの物も)を隠蔽して、必要なメッソドだけ外部に公開する