Описание тега lsp
Принцип замещения Лискова (LSP) - это принцип объектно-ориентированного программирования, один из принципов SOLID.
2
ответа
Принцип подстановки Лискова и множественные иерархии
Этот вопрос является продолжением этого. Я пытаюсь определить класс heirarchies с участием нескольких пар основанных на базе. В качестве наглядного примера предположим, что у меня есть класс Animal и класс Food, Animal имеет чисто виртуальную функци…
30 мар '16 в 17:42
4
ответа
Наследование и LSP
Заранее извиняюсь за многословный вопрос. Обратная связь особенно ценится здесь.,, В моей работе мы многое делаем с диапазонами дат (периоды дат, если хотите). Нам нужно проводить всевозможные измерения, сравнивать перекрытия между двумя периодами д…
18 июн '11 в 22:06
3
ответа
Как может сработать противоречивость аргументов в принципе Лискова?
Основным принципом подстановки Лискова является то, что суперкласс может быть заменен на подкласс, который следует тому же контракту (поведению). Или, как сказал Мартин Фаулер: "Функции, использующие указатели или ссылки на базовые классы, должны им…
14 апр '18 в 17:52
2
ответа
Zend_Form и принцип подстановки Лискова
Очень распространенный шаблон, который я вижу (я выбираю в Zend Framework только потому, что я имел дело с ним в момент этого вопроса), выглядит примерно так: class My_Form extends Zend_Form { public function init() { $this->addElement(); } } Zen…
21 май '09 в 20:09
1
ответ
Наследование и принцип подстановки Лискова
Я изо всех сил стараюсь придерживаться принципа подстановки Лискова при создании структуры моего класса. Я хочу, чтобы коллекция элементов календаря хранилась в дневном классе. Должно быть несколько разных типов CalendarItems, например: AppointmentI…
21 апр '14 в 14:47
3
ответа
Как я могу избежать взлома LSP в этом примере? C#
У меня есть базовый класс под названием сообщение, как это: public abstract class Message { protected int m_id; protected bool m_localized; protected string m_metaData; public int GetID() { return m_id; } public bool GetLocalized() { return m_locali…
05 фев '17 в 18:24
0
ответов
Почему допускается только контрастность входных параметров метода в соответствии с принципом подстановки Лискова?
Я пытался найти хорошие примеры того, почему контрастная дисперсия является единственной допустимой дисперсией для входных параметров метода в соответствии с принципом подстановки Лискова, но до сих пор ни один из примеров не дал полного ответа, сом…
12 окт '15 в 16:58
2
ответа
Что может произойти в программе, где подкласс усиливает предпосылки переопределенного метода?
Я ломаю голову над этим вопросом. Я был бы рад узнать, какой ответ правильный и почему? Принцип подстановки Лискова гласит, что в переопределенных методах допускается ослабление предпосылок. Что может произойти в программе, где подкласс усиливает пр…
04 июн '18 в 10:42
1
ответ
Ограничения параметров типа для принципа Лискова в C#.NET
Я пытаюсь создать универсальный интерфейс, который наследует интерфейс System.ICloneable, но где возвращаемый тип метода Clone()- это T. Конечно, T-тип нуждается в ограничениях, чтобы быть уверенным, что это наследование класса System.Object, но сле…
15 июл '09 в 12:08
1
ответ
Имеет ли смысл LSP для языка динамической типизации, такого как Ruby?
Рассмотрим классический пример на Java // Violation of Likov's Substitution Principle class Rectangle { protected int m_width; protected int m_height; public void setWidth(int width){ m_width = width; } public void setHeight(int height){ m_height = …
12 июн '13 в 23:33
3
ответа
Что я неправильно понимаю в принципе замены Лискова
Я думал, что понимаю LSP, но, похоже, я совершенно не прав. У меня есть следующие классы: class PrimitiveValue { } class StringValue extends PrimitiveValue { } class A { public function foo(StringValue $value) { } } class B extends A { public functi…
06 фев '15 в 09:11
1
ответ
Принцип подстановки Лискова или нарушение инкапсуляции
В этом посте я хочу показать вам небольшой пример кода с несколькими классами JS и спросить вас, подходит ли этот код из-за LSP или он нарушает принципы инкапсуляции. _framesMonitor переменная в этом примере является экземпляром какой-то сторонней б…
14 ноя '17 в 13:40
1
ответ
Принудительная ошибка синтаксиса в автоматическом методе ToString()
По умолчанию в C# все классы наследуют ToString() метод. У меня проблема в том, что на работе мы используем automapper сопоставить некоторые доменные объекты с интерфейсом. Я продолжаю видеть код, очень похожий на следующий sudo. string:mapToclass.n…
05 сен '13 в 16:28
1
ответ
Можно ли предусловия выразить (для проверки) как простые условия?
Я понимаю, что предварительным условием в контексте принципа Desing by contract/Liskov является то, что должно быть верно до вызова кода, например, за это отвечает вызывающая сторона. Кроме того, автор языка Eiffel заявил, что большинство людей поме…
05 сен '18 в 15:06
2
ответа
Понимание принципа подстановки Лискова
Мой пример программы, как показано ниже; public class Animal { public virtual string MakeSound() { return "General Sound"; } } public class Dog : Animal { public override string MakeSound() { return "Bow..Bow.."; } } } static void Main(string[] args…
26 апр '16 в 16:53
1
ответ
Что такое отказано по завещанию?
Может кто-нибудь объяснить, что означает " Отказался от завещания"? Я попытался прочитать некоторые статьи и сказал, что это своего рода запах кода или в вики он говорит, что это класс, который переопределяет метод базового класса таким образом, что…
02 фев '15 в 04:30
1
ответ
Добавить поддержку языка vue js в редактор monaco
Я пытался добавить поддержку языка vuejs в редактор monaco, но все мои попытки пока не увенчались успехом. Я пробовал плагин monaco-vue для редактора, но, похоже, он тоже не работает. Конечный результат, которого я хотел бы достичь, состоит в том, ч…
20 янв '19 в 21:26
2
ответа
Нарушение принципа подстановки Лискова в SharedFolder
Текущий дизайн SharedFolder это подкласс Folder, SharedFile это подкласс File с URL удаленного ресурса. Folder принимает File в add метод. SharedFolder принимает только SharedFile но не общий File File может быть перемещен в другой Folder с add, Пол…
03 авг '16 в 07:35
0
ответов
Лисков Принципы замещения Заявления
Какие утверждения точны относительно использования принципа подстановки Лискова в C#: Виртуальные абстрактные методы могут быть использованы аналогичным образом Интерфейсы могут использоваться для описания классов и предоставления "контрактов" Метод…
16 фев '19 в 05:16
0
ответов
Является ли принцип замещения Лискова примером ковариации или есть что-то большее?
Является ли принцип замещения Лискова примером ко-дисперсии или есть что-то большее? BaseClass objectOfBase = new DeriveredClass (); Сотрудник e = new Perm(); Сотрудник e = новый договорный (); e.GetSalary () Это то, что я нашел на одном из популярн…
25 фев '19 в 18:59