こんにちは、私の名前はドミトリー・カルロフスキーです。そして、あなたはCore Dumpチャネルにいます。そこでは、コンピュータサイエンスからさまざまなトピックを取り上げ、棚でそれらを分解します。今回は、最も具体的なものから始めて、SOLIDの原則の分解を開始します。
1987年に、バーバラ・リスコフは自分の名前を開発するという原則を策定しました。
リスコフ置換原理
これにより、ポリモーフィックコードを正しく記述したかどうかを理解できます。しかし、それを定式化する前に、定義に含まれているいくつかの概念を理解する必要があります。
スーパータイプとサブタイプの関係
私たちのプログラムのすべてのデータは、あるタイプまたは別のタイプに属しています。タイプは、可能な値のセットとそのセマンティクスを定義します。あるタイプに別のタイプを完全に含めることができます。このような場合、2番目のタイプは最初のタイプのサブタイプです。このようにして、型は階層を形成できます。数字の例を見てみましょう。
整数のタイプと正の数のタイプはどちらも、実数のタイプの個別の特殊なケースであるため、そのサブタイプです。同時に、全体にすべての肯定的なものが含まれているわけではありません。そして、ポジティブなものはすべてを含んでいるわけではありません。したがって、これらのタイプは、スーパータイプとサブタイプの関係で互いに属していません。ただし、自然数は整数であると同時に正であるため、自然数のタイプはこれら両方のタイプのサブタイプです。
"-" , , — , .
. , . . , , — , .
, , .
— .
, draw
. — .
LSP —
, : " , , , ".
, , , , , . , LSP : , .
, ...
LSP
, -, , .
, , "", . . , , . LSP. , . "".
, , , . ..
- — ( )
- — ( )
- :
- ( )
- ( )
, , LSP .
LSP
- . , , , , LSP . — .
, , , .
LSP
, LSP , ...
" , , , ".
, , — . , , .
LSP?
, , LSP. , , , . , - , . , .
LSP, , — , . . , .
- LSP :-(
- :-)
?
. , , .
:
, . - . - . - . , , , .
..
-
この分析があなたにとって有用であると思われる場合は、などを通じて私に知らせてください。また、それへのリンクを同僚と共有します。
何か考えに同意できない場合、または逆に、ある種の控えめな表現を感じて、独自のアイデアを追加したい場合は、コメントをお待ちしております。
放送中に私と議論することを恐れない場合、または将来の分析の共著者になる準備ができている場合は、電報を書いてください。
最後に、チャンネルに登録して、さらなる洞察を見逃さないようにします。私たちはまだあなたと話し合うことがたくさんあります。
それは今のところすべてです。あなたと一緒に小さなプログラマーのドミトリー・カルロフスキーがいました。