«liskov-substitution» etiketlenmiş sorular

Nesne yönelimli tasarımda Liskov ikame ilkesiyle ilgili sorular için.

10
Bu Liskov Değişim İlkesinin ihlali midir?
Diyelim ki bir Görev varlıkları listesi ve bir ProjectTaskalt tür var. Görevler, ProjectTasksBaşlama statüsüne sahip olduklarında kapatılamaz olmaları haricinde, herhangi bir zamanda kapatılabilir. Kullanıcı Arabirimi, bir başlatmayı kapatma seçeneğinin ProjectTaskhiçbir zaman kullanılabilir olmadığından emin olmalıdır , ancak alanda bazı güvenlik önlemleri vardır: public class Task { public Status Status { …

8
LSP vs OCP / Liskov Değişimi VS Aç Kapat
OOP'un SOLID ilkelerini anlamaya çalışıyorum ve LSP ile OCP'nin bazı benzerlikleri olduğu sonucuna vardım (daha fazla söylemediyseniz). açık / kapalı prensipte "yazılım varlıkları (sınıflar, modüller, fonksiyonlar vb.) uzatma için açık, ancak değişiklik için kapalı olmalıdır" yazmaktadır. Basit bir ifadeyle LSP, herhangi bir örneğinin türetilmiş Fooherhangi bir örneğiyle değiştirilebileceğini ve programın …


14
Sınıf hiyerarşisindeki nesne davranışının veya özelliklerinin * kaldırılmasını * sağlayan bir dil veya tasarım deseni var mı?
Geleneksel sınıf hiyerarşilerinin iyi bilinen bir eksikliği, gerçek dünyayı modelleme söz konusu olduğunda onların kötü olmalarıdır. Örnek olarak, hayvan türlerini sınıflarla temsil etmeye çalışmak. Bunu yaparken aslında birkaç problem var, ama bir çözüm görmedim, bir alt sınıfın uçamayan bir penguen gibi bir süper sınıfta tanımlanmış bir davranışı veya mülkü "kaybetmesi" …


5
Yedekli özel durumlar Liskov İkame İlkesini ihlal ediyor mu?
Diyelim ki FooInterfaceaşağıdaki imzayı içeren bir arayüzüm var: interface FooInterface { public function doSomething(SomethingInterface something); } Ve ConcreteFoobu arayüzü uygulayan somut bir sınıf : class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } ConcreteFoo::doSomething()Özel bir SomethingInterfacenesne türünden geçtiyse benzersiz bir şey yapmak istiyorum (diyelim ki çağrılıyor SpecialSomething). …

3
Ön koşulların güçlendirilmesi ve son koşulların zayıflaması Liskov ikame ilkesini nasıl ihlal eder?
Liskov'un ikame ilkesinin aşağıdaki durumlarda ihlal edildiğini okudum : Ön koşullar güçlendirildi veya Son koşullar zayıfladı Ancak bu iki noktanın Liskov oyuncu değiştirme ilkesini nasıl ihlal edeceğini henüz tam olarak anlayamıyorum. Birisi lütfen bir örnekle açıklayabilir mi? Özellikle, yukarıdaki koşullardan herhangi biri, bir alt sınıf nesnesinin bir üst sınıf nesne …

3
“Dikdörtgenden Kare Miras” paradoksu için belirli bir isim var mı?
Belirli bir OOP arızası, Dikdörtgen'den devralınan bir Kare sınıfı sınıfı ile gösterilir; burada mantıksal olarak Kare bir Dikdörtgen uzmanlığıdır ve bu nedenle miras almalıdır, ancak bir Meydanın uzunluğunu veya genişliğini değiştirmeye çalıştığınızda her şey parçalanır. Bu durumda neyin yanlış gittiğini açıklamak için özel bir terim var mı?

3
Durum Paterni Liskov İkame İlkesini ihlal ediyor mu?
Bu görüntü Etki Alanına Dayalı Tasarım ve Desenler Uygulamadan alınmıştır : C # ve .NET'teki Örneklerle Bu sınıf diyagramı olan Devlet Kalıbı bir SalesOrderyaşam süresi boyunca farklı durum olabilir. Farklı durumlar arasında sadece belirli geçişlere izin verilir. Şimdi OrderStatesınıf bir abstractsınıftır ve tüm yöntemleri alt sınıflarına devralınır. Başka Cancelledbir ülkeye …

1
Liskov İkame Prensibi arayüz uygulayan sınıflar için de geçerli mi?
LSP, sınıfların temel sınıfları için ikame edilmesi gerektiğini, yani türetilen ve taban sınıfların anlamsal olarak eşdeğer olması gerektiğini belirtir. Peki LSP bir arayüz uygulayan sınıflar için de geçerli mi? Başka bir deyişle, bir sınıf tarafından uygulanan bir arabirim yöntemi , kullanıcının onun beklediğinden anlamsal olarak farklıysa, bu LSP'nin ihlali olarak …

2
Gerçek Dünya - Liskov İkame İlkesi
Arka plan: Bir mesajlaşma çerçevesi geliştiriyorum. Bu çerçeve şunları sağlayacaktır: servis otobüsü üzerinden mesaj gönderme mesaj veri yolundaki kuyruklara abone olma mesaj veri yolundaki konulara abone olma Şu anda RabbitMQ kullanıyoruz, ancak çok yakında Microsoft Hizmet Veri Yolu'na (Şirket İçi) taşınacağımızı biliyorum. Bir dizi arabirim ve uygulama oluşturmayı planlıyorum, böylece …


1
Kalıtım hiyerarşisinde Liskov ikame ilkesi nasıl doğrulanır?
Bu yanıttan ilham alındı : Liskov İkame İlkesi şunu gerektirir : Bir alt tipte önkoşullar güçlendirilemez. Alt koşullar bir alt türde zayıflatılamaz. Süpertipin değişmezleri bir alt tipte korunmalıdır. Geçmiş kısıtı ("geçmiş kuralı"). Nesneler yalnızca yöntemleri (kapsülleme) yoluyla değiştirilebilir olarak kabul edilir. Alt tipler, üst tipte bulunmayan yöntemler getirebileceğinden, bu yöntemlerin …

2
LinkedList genişletme yığını. Liskov İkame İlkesinin ihlali mi?
Add_first (), add_last (), add_after (), remove_first (), remove_last () ve remove () gibi işlevlerle bir sınıf LinkedList var. Şimdi push (), pop (), peek () veya top () gibi işlevler sağlayan bir Sınıf Stack var ve bu yöntemleri uygulamak için LinkedList sınıf yöntemlerini genişletiyor. Bu Liskov İkame İlkesinin ihlali …

6
Daire-elips problemi ilişkiyi tersine çevirerek çözülebilir mi?
Having CircleuzatmakEllipse kırar Liskov yerdeğiştirme İlkesi yani X ve Y bağımsız olarak bir elips çizmek için ayarlayabilirsiniz, ancak X daima çevreler için Y eşit olmalıdır: Bir sonşartı değiştirir çünkü. Ama burada Circle'ın Elips'in alt tipi olması nedeniyle ortaya çıkan sorun değil mi? İlişkiyi tersine çeviremez miydik? Yani, Daire süper tiptir …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.