Вопросы по теме 'liskov-substitution-principle'
Шаблон адаптера против замены Лисков
Шаблон проектирования Adapter используется для преобразования интерфейса класса (Target) в другой интерфейс (Adaptee), ожидаемый клиентами. Адаптер позволяет несовместимым классам работать вместе, что иначе было бы невозможно из-за их несовместимых...
2466 просмотров
schedule
09.05.2023
Вопрос о LSP (принцип подстановки Лисков) и подтипах
LSP говорит, что
если q(x) является доказуемым свойством объектов x типа T, то q(y) должно быть истинным для объектов y типа S, где S является подтипом T.
Я могу перефразировать это следующим образом:
q(x) истинно для любого x из...
316 просмотров
schedule
16.02.2023
Нарушает ли 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 просмотров
schedule
31.03.2022
Что не так с наследованием Square и Rectangle?
Я читал некоторые статьи о том, что делать Square классом наследования класса Rectangle является плохой практикой, говоря, что это нарушает LSP (принцип подстановки Лискова). Я до сих пор не понимаю, я сделал пример кода на Ruby:
class Rectangle...
2847 просмотров
schedule
08.01.2023
Принцип подстановки Лисков для разных типов данных
У меня проблема с LSP в моей программе. У меня есть абстрактный базовый класс и два разных типа продуктов: один Food , другой - электронное устройство. Мне нужно создать метод, который возвращает дату истечения/гарантию для этих продуктов. Проблема...
200 просмотров
schedule
11.03.2023
Принцип наследования и подстановки Лискова
Я изо всех сил стараюсь придерживаться принципа замещения Лискова при создании своей классовой структуры. Я хочу иметь коллекцию элементов календаря, хранящуюся в классе Day. Должно быть несколько разных типов CalendarItem, например:...
688 просмотров
schedule
14.12.2022
Противоречит ли ограничение LSP на усиление предварительных условий предположениям о том, что необходимость приведения вниз указывает на плохой дизайн?
Недавно я начал читать о принципе замещения Лискова ( LSP ), и я изо всех сил пытаюсь полностью понять последствия ограничения, что «Предварительные условия не могут быть усилены в подтипе». Мне кажется, что это ограничение противоречит принципу...
208 просмотров
schedule
19.07.2023
Как эффективно распределять функции между классами, не нарушая принцип подстановки Лискова
У меня есть кодовая база, которая изначально была создана с рядом различных опций, которые позволяют вам заставить код выполнять один и тот же процесс немного по-другому, например так:
public class MainFunction {
public void main(String...
96 просмотров
schedule
05.01.2023
Параметры конструктора LSP C# и защитные предложения
Я читал о принципе замещения Лискова (LSP), и я немного смущен тем, как вы правильно его придерживаетесь. Особенно, когда используются интерфейсы и подклассы.
Например, если у меня есть базовый класс:
public abstract class AccountBase
{...
597 просмотров
schedule
18.06.2023
Нарушен ли в моем примере принцип подстановки Лисков?
Интересно, как я должен организовать свои два класса.
Один из них представляет собой Knife : простой, прочный, простой, как кухонный нож.
Другой — PocketKnife , который находится в состоянии открыто или закрыто .
class Knife{...
481 просмотров
schedule
15.05.2023
Ковариация возвращаемого типа C# и принцип подстановки Лискова
Я пытаюсь понять ковариацию и LSP. Из этот вопрос я вижу, что С# не поддерживает ковариантность возвращаемого типа. Однако принцип подстановки Лисков накладывает ковариантность на возвращаемый тип.
Значит ли это, что этот принцип невозможно...
1424 просмотров
schedule
29.04.2024
Разница между принципом замещения IS-A и Лисков?
Мне просто интересно, есть ли разница между IS-A (терминология UML и ООП) и принципом замещения Лискова (LSP)?
Собственно, оба говорят о наследстве. Так в чем же основное отличие на практике?
1054 просмотров
schedule
12.05.2023
Метод объекта toString и принцип подстановки Лисков
Каждый класс прямо или косвенно наследуется от класса Object .
Класс Object , среди прочих, имеет важный метод, чаще всего переопределяемый: toString .
Вопрос: не приведет ли переопределение этого метода к нарушению принципа подстановки...
162 просмотров
schedule
11.08.2022
Разница между принципом подстановки лисков и принципом разделения интерфейсов
Есть ли принципиальное различие между принципом замещения Лисков (LSP) и принципом разделения интерфейсов (ISP)? В конечном счете, оба ручаются за разработку интерфейса с общими функциями и представляют новый интерфейс, когда у вас есть специальное...
3737 просмотров
schedule
19.07.2023
Лучший дизайн, чтобы не нарушать принцип замещения Лисков.
У меня возникла проблема с принципом замещения Лискова, и я не совсем уверен, как лучше всего это обойти.
Код под вопросом
class BaseModel:
def run(self, base_model_input: BaseModelInput) -> BaseModelOutput:...
92 просмотров
schedule
18.11.2022