Вопросы по теме 'liskov-substitution-principle'
Совокупный класс, расширяющий базовый класс — нарушение LSP?
принцип замещения Лисков (LSP) в Википедии
Скажем, у меня есть класс Alien с атрибутом numFingers *. Иногда мне нужно получить сумму numFingers из базы данных, сгруппированную по другим значениям поля. В этих случаях мне не нужно...
199 просмотров
schedule
30.12.2022
Применяется ли принцип подстановки Лискова к классам, реализующим интерфейсы?
1) Применяется ли LSP также к интерфейсам, что означает, что мы должны иметь возможность использовать класс, реализующий определенный интерфейс, и при этом получать ожидаемое поведение?
2) Если это действительно так, то почему программирование для...
3356 просмотров
schedule
17.12.2022
ReadOnlyCollection vs Liskov — как правильно моделировать неизменяемые представления изменяемой коллекции
Принцип подстановки Лисков требует, чтобы подтипы удовлетворяли контрактам супертипов. В моем понимании это будет означать, что ReadOnlyCollection<T> нарушает Лисков. Контракт ICollection<T> предоставляет операции Add и Remove ,...
962 просмотров
schedule
18.06.2023
Нарушает ли добавление открытого метода в подкласс LSP (принцип подстановки Лискова)?
Если я добавлю общедоступный метод в подкласс, а клиентская программа вызовет добавленный метод, клиентские программы не смогут использовать родительский объект вместо подкласса.
import unittest
class BaseClass(object):
def...
710 просмотров
schedule
22.04.2023
Почему нарушения принципа замены Лискова не показаны в этом фрагменте 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 просмотров
schedule
14.05.2023
нарушение принципа замены лискова
Я изучаю liskov substitution principle . Там написано sub classes should be proper replacement for the base classes .
Я прочитал пример, который я нашел в разных местах в Интернете. Класс Rectangle.java с height, width и их setter and...
2355 просмотров
schedule
21.05.2023
Понимание принципа замещения Лискова
Моя примерная программа, как показано ниже;
public class Animal
{
public virtual string MakeSound()
{
return "General Sound";
}
}
public class Dog : Animal
{
public override string...
252 просмотров
schedule
22.08.2022
Нарушает ли использование перечисления со связанным значением в Swift принцип замены Лисков?
enum WeatherType {
case cloudy(coverage: Int)
case sunny
case windy
}
Я только что видел это в учебнике по Swift и не могу поверить, что они позволяют вам это делать. Теперь, всякий раз, когда я включаю это перечисление, я должен...
213 просмотров
schedule
30.10.2023
Твердый принцип: нарушение LSP
Я пытаюсь правильно изучить принципы ООП и ООД. Я хотел бы получить некоторые разъяснения о принципе замещения Лискова и их условиях PRE и POST. Я прочитал некоторые темы здесь, некоторые статьи из...
324 просмотров
schedule
19.05.2022
Принцип подстановки Лисков или нарушение инкапсуляции
В этом посте я хочу показать вам небольшой пример кода с несколькими классами JS и спросить вас, подходит ли этот код из-за LSP или нарушает принципы инкапсуляции.
Переменная _framesMonitor в этом примере является экземпляром некоторой...
336 просмотров
schedule
07.06.2023
Нужна ясность в понимании принципа замены лисков
Определение LSP гласит, что если S является подтипом T, то объекты типа T в программе могут быть заменены объектами типа S без изменения каких-либо желаемых свойств этой программы.
Предусловия не могут быть усилены в подтипе
Постусловия не...
934 просмотров
schedule
10.06.2023
Как принцип подстановки Лискова применяется к типам, возвращаемым функцией?
Принцип замещения Лискова гласит, что:
Объекты в программе должны заменяться экземплярами их подтипов без изменения правильности этой программы.
При условии, что:
interface Iterable<T> {
fun getIterator(): Iterator<T>...
314 просмотров
schedule
28.06.2023
Как смоделировать более ограниченную версию класса с общим кодом?
Мне нужно создать новый класс. Часть его функций уже находится в другом классе, и с точки зрения предметной области имеет смысл наследоваться от него. Проблема в том, что есть метод, который должен быть более ограниченным в типе параметра, из-за LSP...
45 просмотров
schedule
17.11.2022
Принцип замены Лисков 4 вопроса
Мне очень трудно понять эту концепцию. У меня было пару вопросов по этому поводу. Я пытался проверить в Интернете, но там не так много ресурсов об этом.
Должен ли подкласс сохранять свою отличительность на протяжении всей своей жизни?
Я почти...
46 просмотров
schedule
01.11.2023
код нарушает принцип замены Лискова?
Мне трудно понять принцип замещения Лискова, и мне было интересно, нарушает ли следующий код принцип замещения Лискова?
public class Task {
String status = "Ready"; // One of "Ready", "Started", and "Closed"
public void...
132 просмотров
schedule
29.12.2023
Java - нарушение принципа подстановки Лисков?
У меня есть следующий код:
interface Ops{
void remove();
}
interface BeforeRemove{
void doBeforeRemove();
}
class A implements Ops{
@Override
public void remove() {
System.out.println("REMOVED A");
}
}
class...
128 просмотров
schedule
27.04.2023