Halo, nama saya Dmitry Karlovsky. Dan Anda berada di saluran Core Dump , tempat kami mengambil topik yang berbeda dari ilmu komputer dan mendekonstruksinya di rak. Kali ini, kita akan mulai mendekonstruksi prinsip SOLID yang dimulai dari yang paling konkret.
Kembali pada tahun 1987, Barbara Liskov merumuskan prinsip mengembangkan nama untuk dirinya sendiri.
Prinsip Substitusi Liskov
Ini memungkinkan Anda untuk memahami apakah Anda telah menulis kode polimorfik dengan benar atau belum. Namun sebelum merumuskannya, kita perlu memahami beberapa konsep yang termasuk dalam definisi tersebut.
Rekaman video dari analisis ini .
Hubungan supertipe-subtipe
Semua data dalam program kami milik satu jenis atau lainnya. Jenis ini mendefinisikan himpunan nilai yang mungkin dan semantiknya. Satu jenis dapat sepenuhnya mencakup jenis lainnya. Dalam kasus seperti itu, tipe kedua adalah subtipe dari yang pertama. Dengan cara ini, tipe bisa membentuk hierarki. Mari kita lihat contoh dengan angka ..
Baik jenis bilangan bulat maupun jenis bilangan positif adalah kasus khusus yang terpisah dari jenis bilangan real, dan oleh karena itu merupakan subtipe-nya. Pada saat yang sama, keutuhan tidak mencakup semua yang positif. Dan yang positif tidak mencakup semua keutuhan. Oleh karena itu, tipe ini tidak dimiliki satu sama lain dalam hubungan supertipe-subtipe. Tetapi bilangan asli adalah bilangan bulat dan positif pada saat yang sama, jadi jenis bilangan asli adalah subtipe dari kedua jenis ini.
"-" , , — , .
. , . . , , — , .
, , .
— .
, draw
. — .
LSP —
, : " , , , ".
, , , , , . , LSP : , .
, ...
LSP
, -, , .
, , "", . . , , . LSP. , . "".
, , , . ..
- — ( )
- — ( )
- :
- ( )
- ( )
, , LSP .
LSP
- . , , , , LSP . — .
, , , .
LSP
, LSP , ...
" , , , ".
, , — . , , .
LSP?
, , LSP. , , , . , - , . , .
LSP, , — , . . , .
- LSP :-(
- :-)
?
. , , .
:
, . - . - . - . , , , .
..
-
Jika analisis ini tampak berguna bagi Anda, beri tahu saya melalui sejenisnya. Dan juga bagikan tautannya dengan kolega Anda.
Jika Anda tidak setuju dengan pemikiran apa pun atau, sebaliknya, merasa meremehkan dan ingin menambahkan ide Anda sendiri, maka saya menantikan komentar Anda.
Jika Anda tidak takut untuk berdebat dengan saya saat siaran, atau bahkan siap menjadi rekan penulis analisis masa depan, tulislah telegram .
Terakhir, subscribe ke channel tersebut agar Anda tidak ketinggalan wawasan lebih lanjut. Kami masih memiliki banyak hal untuk didiskusikan dengan Anda.
Itu saja untuk saat ini. Dengan Anda ada seorang programmer kecil Dmitry Karlovsky.