Pertanyaan yang diberi tag «liskov-substitution»

Untuk pertanyaan tentang prinsip substitusi Liskov dalam desain berorientasi objek.

10
Apakah ini merupakan pelanggaran terhadap Prinsip Pergantian Liskov?
Katakanlah kita memiliki daftar entitas Tugas, dan ProjectTasksub tipe. Tugas dapat ditutup kapan saja, kecuali ProjectTasksyang tidak dapat ditutup setelah status Mulai. UI harus memastikan opsi untuk menutup permulaan ProjectTasktidak pernah tersedia, tetapi beberapa perlindungan ada dalam domain: public class Task { public Status Status { get; set; } public …


3
Apa perbedaan antara subkelas dan subtipe?
Jawaban dengan nilai tertinggi untuk pertanyaan ini tentang Prinsip Pergantian Liskov bersusah payah untuk membedakan antara istilah subtipe dan subkelas . Ini juga menunjukkan bahwa beberapa bahasa mengacaukan keduanya, sedangkan yang lain tidak. Untuk bahasa berorientasi objek yang paling saya kenal (Python, C ++), "type" dan "class" adalah konsep yang …

14
Apakah ada bahasa atau pola desain yang memungkinkan * penghapusan * perilaku objek atau properti dalam hierarki kelas?
Kelemahan hierarki kelas tradisional yang terkenal adalah bahwa mereka buruk ketika datang ke pemodelan dunia nyata. Sebagai contoh, berusaha mewakili spesies hewan dengan kelas. Sebenarnya ada beberapa masalah ketika melakukan itu, tetapi satu yang saya tidak pernah lihat solusinya adalah ketika sub-kelas "kehilangan" perilaku atau properti yang didefinisikan dalam kelas-super, …


5
Apakah kasus khusus dengan fallback melanggar Prinsip Pergantian Liskov?
Katakanlah saya memiliki antarmuka FooInterfaceyang memiliki tanda tangan berikut: interface FooInterface { public function doSomething(SomethingInterface something); } Dan kelas konkret ConcreteFooyang mengimplementasikan antarmuka itu: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Saya ingin ConcreteFoo::doSomething()melakukan sesuatu yang unik jika melewati jenis SomethingInterfaceobjek khusus (katakanlah itu disebut …

3
Bagaimana penguatan prasyarat dan melemahnya postkondisi melanggar prinsip substitusi Liskov?
Saya membaca bahwa prinsip substitusi Liskov dilanggar jika: Prasyarat diperkuat, atau Postconditions melemah Tapi saya belum mengerti sepenuhnya bagaimana kedua poin ini akan melanggar prinsip substitusi Liskov. Bisakah seseorang tolong jelaskan dengan sebuah contoh. Secara khusus, bagaimana salah satu dari kondisi di atas menyebabkan situasi di mana objek subclass tidak …


1
Apakah Prinsip Substitusi Liskov juga berlaku untuk kelas yang mengimplementasikan antarmuka?
LSP menyatakan bahwa kelas harus dapat disubstitusikan untuk kelas dasar mereka, yang berarti kelas turunan dan kelas dasar harus setara secara semantik. Tetapi apakah LSP juga berlaku untuk kelas yang mengimplementasikan antarmuka? Dengan kata lain, jika metode antarmuka yang diterapkan oleh suatu kelas secara semantik berbeda dari apa yang diharapkan …


2
Dunia Nyata - Prinsip Pergantian Liskov
Latar Belakang: Saya sedang mengembangkan kerangka kerja pengiriman pesan. Kerangka kerja ini akan memungkinkan: pengiriman pesan melalui bus layanan berlangganan antrian di bus pesan berlangganan topik pada bus pesan Kami saat ini menggunakan RabbitMQ, tapi saya tahu kami akan pindah ke Microsoft Service Bus (on Premise) dalam waktu dekat. Saya …


1
Bagaimana cara memverifikasi prinsip substitusi Liskov dalam hierarki warisan?
Terinspirasi oleh jawaban ini : Prinsip Pergantian Liskov mensyaratkan itu Prasyarat tidak dapat diperkuat dalam subtipe. Postconditions tidak dapat dilemahkan dalam subtipe. Invarian tipe supertipe harus dipertahankan dalam subtipe. Batasan sejarah ("aturan sejarah"). Objek dianggap dapat dimodifikasi hanya melalui metode mereka (enkapsulasi). Karena subtipe dapat memperkenalkan metode yang tidak ada …

2
Stack memperpanjang LinkedList. Pelanggaran Prinsip Pergantian Liskov?
Kelas LinkedList ada dengan fungsi-fungsi seperti add_first (), add_last (), add_after (), remove_first (), remove_last (), dan remove () Sekarang ada kelas Stack yang menyediakan fungsionalitas seperti push (), pop (), peek () atau top (), dan untuk mengimplementasikan metode ini ia memperluas metode kelas LinkedList. Apakah ini merupakan pelanggaran …

6
Bisakah masalah lingkaran-elips diselesaikan dengan membalikkan hubungan?
Setelah CirclememperpanjangEllipse istirahat Prinsip Substisi Liskov , karena memodifikasi postkondisi: yaitu, Anda dapat mengatur X dan Y secara independen untuk menggambar elips, tetapi X harus selalu sama dengan Y untuk lingkaran. Tapi bukankah masalah di sini disebabkan oleh memiliki Circle menjadi subtipe dari Ellipse? Tidak bisakah kita membalikkan hubungan? Jadi, …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.