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

Шаблон адаптера против замены Лисков
Шаблон проектирования Adapter используется для преобразования интерфейса класса (Target) в другой интерфейс (Adaptee), ожидаемый клиентами. Адаптер позволяет несовместимым классам работать вместе, что иначе было бы невозможно из-за их несовместимых...
2466 просмотров

Вопрос о LSP (принцип подстановки Лисков) и подтипах
LSP говорит, что если q(x) является доказуемым свойством объектов x типа T, то q(y) должно быть истинным для объектов y типа S, где S является подтипом T. Я могу перефразировать это следующим образом: q(x) истинно для любого x из...
316 просмотров

Нарушает ли ActivityMapper GWT принцип подстановки Лисков?
В моем приложении GWT у меня есть такой класс: public class AppActivityMapper implements ActivityMapper { @Override public Activity getActivity(Place place) { if(place instanceof ThisPlace) { return new...
215 просмотров
schedule 12.01.2023

Является ли хорошей практикой модульное тестирование соответствия принципу замещения Лискова?
Предположим, что есть класс с именем Sprinter : public class Sprinter { protected int travelMeters; public void run(int seconds) { this.travelMeters = 9 * seconds; } public int getTravelMeters(){ return...
628 просмотров

Что не так с наследованием Square и Rectangle?
Я читал некоторые статьи о том, что делать Square классом наследования класса Rectangle является плохой практикой, говоря, что это нарушает LSP (принцип подстановки Лискова). Я до сих пор не понимаю, я сделал пример кода на Ruby: class Rectangle...
2847 просмотров
schedule 08.01.2023

Принцип подстановки Лисков для разных типов данных
У меня проблема с LSP в моей программе. У меня есть абстрактный базовый класс и два разных типа продуктов: один Food , другой - электронное устройство. Мне нужно создать метод, который возвращает дату истечения/гарантию для этих продуктов. Проблема...
200 просмотров

Принцип наследования и подстановки Лискова
Я изо всех сил стараюсь придерживаться принципа замещения Лискова при создании своей классовой структуры. Я хочу иметь коллекцию элементов календаря, хранящуюся в классе Day. Должно быть несколько разных типов CalendarItem, например:...
688 просмотров

Противоречит ли ограничение LSP на усиление предварительных условий предположениям о том, что необходимость приведения вниз указывает на плохой дизайн?
Недавно я начал читать о принципе замещения Лискова ( LSP ), и я изо всех сил пытаюсь полностью понять последствия ограничения, что «Предварительные условия не могут быть усилены в подтипе». Мне кажется, что это ограничение противоречит принципу...
208 просмотров

Как эффективно распределять функции между классами, не нарушая принцип подстановки Лискова
У меня есть кодовая база, которая изначально была создана с рядом различных опций, которые позволяют вам заставить код выполнять один и тот же процесс немного по-другому, например так: public class MainFunction { public void main(String...
96 просмотров

Параметры конструктора LSP C# и защитные предложения
Я читал о принципе замещения Лискова (LSP), и я немного смущен тем, как вы правильно его придерживаетесь. Особенно, когда используются интерфейсы и подклассы. Например, если у меня есть базовый класс: public abstract class AccountBase {...
597 просмотров

Нарушен ли в моем примере принцип подстановки Лисков?
Интересно, как я должен организовать свои два класса. Один из них представляет собой Knife : простой, прочный, простой, как кухонный нож. Другой — PocketKnife , который находится в состоянии открыто или закрыто . class Knife{...
481 просмотров

Ковариация возвращаемого типа C# и принцип подстановки Лискова
Я пытаюсь понять ковариацию и LSP. Из этот вопрос я вижу, что С# не поддерживает ковариантность возвращаемого типа. Однако принцип подстановки Лисков накладывает ковариантность на возвращаемый тип. Значит ли это, что этот принцип невозможно...
1424 просмотров

Разница между принципом замещения IS-A и Лисков?
Мне просто интересно, есть ли разница между IS-A (терминология UML и ООП) и принципом замещения Лискова (LSP)? Собственно, оба говорят о наследстве. Так в чем же основное отличие на практике?
1054 просмотров

Метод объекта toString и принцип подстановки Лисков
Каждый класс прямо или косвенно наследуется от класса Object . Класс Object , среди прочих, имеет важный метод, чаще всего переопределяемый: toString . Вопрос: не приведет ли переопределение этого метода к нарушению принципа подстановки...
162 просмотров
schedule 11.08.2022

Разница между принципом подстановки лисков и принципом разделения интерфейсов
Есть ли принципиальное различие между принципом замещения Лисков (LSP) и принципом разделения интерфейсов (ISP)? В конечном счете, оба ручаются за разработку интерфейса с общими функциями и представляют новый интерфейс, когда у вас есть специальное...
3737 просмотров

Лучший дизайн, чтобы не нарушать принцип замещения Лисков.
У меня возникла проблема с принципом замещения Лискова, и я не совсем уверен, как лучше всего это обойти. Код под вопросом class BaseModel: def run(self, base_model_input: BaseModelInput) -> BaseModelOutput:...
92 просмотров