Вопросы по теме 'liskov-substitution-principle'

Совокупный класс, расширяющий базовый класс — нарушение LSP?
принцип замещения Лисков (LSP) в Википедии Скажем, у меня есть класс Alien с атрибутом numFingers *. Иногда мне нужно получить сумму numFingers из базы данных, сгруппированную по другим значениям поля. В этих случаях мне не нужно...
199 просмотров

Применяется ли принцип подстановки Лискова к классам, реализующим интерфейсы?
1) Применяется ли LSP также к интерфейсам, что означает, что мы должны иметь возможность использовать класс, реализующий определенный интерфейс, и при этом получать ожидаемое поведение? 2) Если это действительно так, то почему программирование для...
3356 просмотров

ReadOnlyCollection vs Liskov — как правильно моделировать неизменяемые представления изменяемой коллекции
Принцип подстановки Лисков требует, чтобы подтипы удовлетворяли контрактам супертипов. В моем понимании это будет означать, что ReadOnlyCollection<T> нарушает Лисков. Контракт ICollection<T> предоставляет операции Add и Remove ,...
962 просмотров

Нарушает ли добавление открытого метода в подкласс LSP (принцип подстановки Лискова)?
Если я добавлю общедоступный метод в подкласс, а клиентская программа вызовет добавленный метод, клиентские программы не смогут использовать родительский объект вместо подкласса. import unittest class BaseClass(object): def...
710 просмотров

Почему нарушения принципа замены Лискова не показаны в этом фрагменте C++?
Я пробовал нарушения принципа подстановки Лискова, используя наследование классов C++, но не смог воспроизвести ту же проблему, возникающую из-за нарушения LSP, которая была продемонстрирована с программой Java. Исходный код программы Java можно...
123 просмотров
schedule 15.07.2022

Наследование интерфейса C++ и нарушение LSP
у меня такой интерфейс class IVersion { public: virtual char * get_version() const = 0; virtual bool is_compatible(const IVersion& other) const = 0; }; У меня есть набор классов «Устройства», каждый из которых должен поддерживать...
88 просмотров
schedule 08.11.2022

Почему Rust не поддерживает апкастинг трейт-объекта?
Учитывая этот код: trait Base { fn a(&self); fn b(&self); fn c(&self); fn d(&self); } trait Derived : Base { fn e(&self); fn f(&self); fn g(&self); } struct S; impl Derived for S { fn...
11632 просмотров

нарушение принципа замены лискова
Я изучаю liskov substitution principle . Там написано sub classes should be proper replacement for the base classes . Я прочитал пример, который я нашел в разных местах в Интернете. Класс Rectangle.java с height, width и их setter and...
2355 просмотров

Понимание принципа замещения Лискова
Моя примерная программа, как показано ниже; public class Animal { public virtual string MakeSound() { return "General Sound"; } } public class Dog : Animal { public override string...
252 просмотров

Нарушает ли использование перечисления со связанным значением в Swift принцип замены Лисков?
enum WeatherType { case cloudy(coverage: Int) case sunny case windy } Я только что видел это в учебнике по Swift и не могу поверить, что они позволяют вам это делать. Теперь, всякий раз, когда я включаю это перечисление, я должен...
213 просмотров

Твердый принцип: нарушение LSP
Я пытаюсь правильно изучить принципы ООП и ООД. Я хотел бы получить некоторые разъяснения о принципе замещения Лискова и их условиях PRE и POST. Я прочитал некоторые темы здесь, некоторые статьи из...
324 просмотров

Принцип подстановки Лисков или нарушение инкапсуляции
В этом посте я хочу показать вам небольшой пример кода с несколькими классами JS и спросить вас, подходит ли этот код из-за LSP или нарушает принципы инкапсуляции. Переменная _framesMonitor в этом примере является экземпляром некоторой...
336 просмотров

Нужна ясность в понимании принципа замены лисков
Определение LSP гласит, что если S является подтипом T, то объекты типа T в программе могут быть заменены объектами типа S без изменения каких-либо желаемых свойств этой программы. Предусловия не могут быть усилены в подтипе Постусловия не...
934 просмотров

Как принцип подстановки Лискова применяется к типам, возвращаемым функцией?
Принцип замещения Лискова гласит, что: Объекты в программе должны заменяться экземплярами их подтипов без изменения правильности этой программы. При условии, что: interface Iterable<T> { fun getIterator(): Iterator<T>...
314 просмотров

Как смоделировать более ограниченную версию класса с общим кодом?
Мне нужно создать новый класс. Часть его функций уже находится в другом классе, и с точки зрения предметной области имеет смысл наследоваться от него. Проблема в том, что есть метод, который должен быть более ограниченным в типе параметра, из-за LSP...
45 просмотров

Принцип замены Лисков 4 вопроса
Мне очень трудно понять эту концепцию. У меня было пару вопросов по этому поводу. Я пытался проверить в Интернете, но там не так много ресурсов об этом. Должен ли подкласс сохранять свою отличительность на протяжении всей своей жизни? Я почти...
46 просмотров

код нарушает принцип замены Лискова?
Мне трудно понять принцип замещения Лискова, и мне было интересно, нарушает ли следующий код принцип замещения Лискова? public class Task { String status = "Ready"; // One of "Ready", "Started", and "Closed" public void...
132 просмотров

Java - нарушение принципа подстановки Лисков?
У меня есть следующий код: interface Ops{ void remove(); } interface BeforeRemove{ void doBeforeRemove(); } class A implements Ops{ @Override public void remove() { System.out.println("REMOVED A"); } } class...
128 просмотров