違いを教えてください抽象化そして情報隠蔽ソフトウェア開発では?
混乱しています。抽象化は詳細な実装を隠し、情報の隠蔽は何かの詳細全体を抽象化します。
アップデート:私はこれら 3 つの概念に対する良い答えを見つけました。下記の個別の回答を参照してくださいいくつかの引用はそこには。
ベストアンサー1
ソースにアクセスしてください! Grady Booch は次のように述べています (『オブジェクト指向分析と設計』第 2 版、49 ページ):
抽象化とカプセル化は補完的な概念です。抽象化はオブジェクトの観察可能な動作に焦点を当て、カプセル化はこの動作を引き起こす実装に焦点を当てます。カプセル化は、ほとんどの場合、情報の隠蔽によって実現されます。情報の隠蔽とは、オブジェクトの本質的な特性に寄与しないすべての秘密を隠すプロセスです。
言い換えれば、抽象化 = 外部のオブジェクト、カプセル化(情報の隠蔽によって達成) = 内部のオブジェクト、
例: .NET Framework では、System.Text.StringBuilder
クラスは文字列バッファの抽象化を提供します。このバッファ抽象化により、実装に関係なくバッファを操作できます。したがって、バッファへのポインタやバッファがStringBuilder
いっぱいになったときのメモリ管理 (情報の隠蔽によるカプセル化によって実行) などの内部的な追跡方法に関係なく、バッファに文字列を追加できます。
ルピー