カプセル化する

カプセル化の実際の目的は、特定のエンティティのデバイスに関連する知識、そのエンティティの取り扱いと操作に関するルールを1か所に集めることです。 カプセル化は、一般に考えられているよりもずっと早く現れました。 Cプログラムのモジュールはカプセル化されています。 アセンブラルーチンはカプセル化です。



カプセル化の反対は、プログラム全体で何かの機能に関する知識を広めることです。



動作を実装するときに、いくつかの同等のオプションから選択することがあります。 将来、拒否されたオプションの1つの重みは、状況の変化の影響下で増加する可能性があり、以前に選択および実装されたオプションは失敗します。 選択したオプションの実装の詳細がすべて1か所に集中していると、決定の変更がはるかに簡単になります。



例:金額を操作します。 多くの電子商取引システムで、通貨の値が浮動小数点数として実装されていることは秘密ではありません。 浮動小数点変数として表される2つの「整数」数を単純に加算するだけで、「わずかに非整数」が形成されることを、私たち全員が知っていると思います。 したがって、このような実装では、丸め関数呼び出しをあちこちに挿入する必要があります。 これは、プログラム全体のエンティティの構造に関する知識の不鮮明です。 この場合のカプセル化は、お金が浮動小数点値として表され、最も罪のない操作中は常に切り上げられる必要があるという知識を1か所に収集(非表示)することです。 エンティティ「お金」を使用するとき、丸めの問題が入らないように非表示にします。 カプセル化により、「money」の実装を浮動小数点数から固定小数点数に置き換えても問題はありません。



All Articles