SOLID принципы на Python: LSP - Принцип подстановки Лисков / Liskov Substitution Principle

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 พ.ย. 2024

ความคิดเห็น • 11

  • @ВикторДзеба
    @ВикторДзеба 2 ปีที่แล้ว +1

    (вроде) (СКАЗАЛИ КАК НЕ НАДО ДЕЛАТЬ) (НЕ СКАЗАЛИ КАК НАДО)
    *предложили использовать фабричный метод (для решения этой проблемы)
    можно пример реализации Решения (от вас)?
    п.с. огромное спасибо за ваши видео) с меня лайк под каждым видео

    • @YGNETATEL_3000
      @YGNETATEL_3000 7 หลายเดือนก่อน

      def __init__(self, size1, size2 = size1):
      def area(self, size1, size2):
      return self1 * self2

    • @ГеннадийШушпанов-д1ч
      @ГеннадийШушпанов-д1ч 3 หลายเดือนก่อน

      Чтобы все работало хорошо, use_it должна использовать лишь общие свойства квадрата и прямоугольника. В контексте ролика это площадь. А ширина и высота для прямоугольника и квадрата не совпадающие свойства. Отсюда и проблемы.
      Исходная посылка, что квадрат это прямоугольник -- неверна. Равенство ширины и высоты не превращает прямоугольник в квадрат. Это все еще прямоугольник, у которого есть ширина и высота, пусть и равные друг другу. А у квадрата есть только один размерный элемент -- длина его столоны. Забавное наблюдение: идея наследовать прямоугольник от квадрата встречается реже.
      Что делать? Вынести общий интерфейс, с которым и будет работать use_it, и реализовать его в классах прямоугольника и квадрата.
      interface IShape { int GetArea() }
      use_it(IShape sh) {
      print("area: {sh.GetArea()}')
      }
      class Rectangle : IShape {
      int GetArea() { return width*height }
      }
      clas Square : IShape {
      int GetArea() { return side*side }
      }

  • @romanryaboshtan9270
    @romanryaboshtan9270 2 ปีที่แล้ว +2

    Привет, можешь дать совет? Что ты делаешь, когда у тебя баг и ни в какую не можешь его исправить, а у тебя ещё другой функционал нужно реализовать и время поджимает. У меня как раз сейчас такая ситуация.?

    • @EngineerSpock
      @EngineerSpock  2 ปีที่แล้ว +2

      Хороший вопрос. Во-первых все должны знать о вашей ситуации, чтобы не было ожиданий некорректных. Возможно вам помогут коллеги. Если нет, то от нерешаемого бага стоит переключиться, возможно причина бага придёт в голову позже. Кроме того, надо учиться техникам отладки)

    • @romanryaboshtan9270
      @romanryaboshtan9270 2 ปีที่แล้ว +1

      @@EngineerSpock Спасибо за ответ, я этого не знал. Техниками отладки я владею, но да, я понял ход твоих мыслей

  • @avazart614
    @avazart614 2 ปีที่แล้ว +1

    Это адаптация какого-то анлоязычного материала (ютюб-канала) ? Хотелось бы ссылку на оригинал.

    • @EngineerSpock
      @EngineerSpock  2 ปีที่แล้ว

      Оригинальный курс есть на юдэми на инглише за авторством Дмитрия Нестерука

    • @avazart614
      @avazart614 2 ปีที่แล้ว

      @@EngineerSpock А он в свою очередь курс базирует тупо по англоязычной книге . Понимаете к чему я?

    • @EngineerSpock
      @EngineerSpock  2 ปีที่แล้ว

      @@avazart614 по какой?

  • @andryog2305
    @andryog2305 10 หลายเดือนก่อน

    Звук очень тихий, на максимум приходится выкручивать громкость.