Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 November 28

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
что нарушается? ничего не нарушается. поведение-то одно и то же, если у квадрата есть метод .draw() и у четырехугольника .draw() то ПОВЕДЕНИЕ одно и то же у них. а принцип о поведении говорит а не о значениях
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Vlad
Раз уж такие вопросы... Как можно ещё объяснить принцип Inversion Of Control, кроме как на Dependency Injection. Какие ещё ключевые слова погуглить?
очень интересные вопросы. нагуглила что кроме Dependency Injection яркими примерами Inversion Of Control являются паттерны Template Method, Strategy и Service Locator
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
🍿
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
что нарушается? ничего не нарушается. поведение-то одно и то же, если у квадрата есть метод .draw() и у четырехугольника .draw() то ПОВЕДЕНИЕ одно и то же у них. а принцип о поведении говорит а не о значениях
Так наследование это не только поведение,  у 4-х угольника есть 4 св-ва длин его сторон,  в прямоугольник они тоже наследуются,  а тебе в нем нужны только 2 длина и ширина, наследование уже не корректно
источник

I

Igor in NodeUA - JavaScript and Node.js in Ukraine
Сергей
От четырехугольника прямоугольник может наследовать?
Омг)) это 7 класс школы и первые уроки по геометрии - прямоугольник это четырехугольник у которого все углы 90 градусов))
источник

I

Igor in NodeUA - JavaScript and Node.js in Ukraine
Квадрат - это прямоугольник у которого все углы 90 градусов и все стороны равны
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Елена, и когда ты передашь в метод аргумент типа четырехугольник, который по факту является прямоугольником, а метод работает с другими свойствами длин,  то солид пойдет лесом вместе с багами.
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Igor
Квадрат - это прямоугольник у которого все углы 90 градусов и все стороны равны
а прямоугольники бывают со сторонами не 90 градусов?)
источник

I

Igor in NodeUA - JavaScript and Node.js in Ukraine
Ноуп)
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
принцип Лисков он о поведении. если класс Машина имеет свойство “цена” и  метод “вычислитьАмортизацию()” и класс Дом имеет все то же самое - то всем все равно что Дом это не Машина, главное чтобы в данной программе (бухгалтерской например) они взаимозаменялись хорошо. а так-то Дом и Машина это конечно разные обьекты.
источник

I

Igor in NodeUA - JavaScript and Node.js in Ukraine
+1
важно чтобы метод вычислить амортизацию вел себя предсказуемо
И это не о наследовании, а про реализацию спеки
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Igor
Квадрат - это прямоугольник у которого все углы 90 градусов и все стороны равны
То есть ты будешь наследовать квадрат от прямоугольника?
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
принцип Лисков он о поведении. если класс Машина имеет свойство “цена” и  метод “вычислитьАмортизацию()” и класс Дом имеет все то же самое - то всем все равно что Дом это не Машина, главное чтобы в данной программе (бухгалтерской например) они взаимозаменялись хорошо. а так-то Дом и Машина это конечно разные обьекты.
Хорошо, у четырехугольника есть метод изменить угол, прилегающий к одной из вершин (для трасформации), в методе куда передан четырехугольник он и вызывается,  но ты туда передала потомка - прямоугольник,  подстановка работает?
источник

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
Vlad
Раз уж такие вопросы... Как можно ещё объяснить принцип Inversion Of Control, кроме как на Dependency Injection. Какие ещё ключевые слова погуглить?
Dependency lookup
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Сергей
Хорошо, у четырехугольника есть метод изменить угол, прилегающий к одной из вершин (для трасформации), в методе куда передан четырехугольник он и вызывается,  но ты туда передала потомка - прямоугольник,  подстановка работает?
нужно выдать люлей тому кто написал программу так что она работает только с некоторыми видами фигур. а то я тоже могу написать ее так чтобы она работала только с квадратами 16х16 - и потом жаловаться что никакие другие фигуры не передаются
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Сергей
Хорошо, у четырехугольника есть метод изменить угол, прилегающий к одной из вершин (для трасформации), в методе куда передан четырехугольник он и вызывается,  но ты туда передала потомка - прямоугольник,  подстановка работает?
у прямоугольника этот метод должен быть но ничего не делать. если прямоугольник наследуется от четырехугольника.
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
у прямоугольника этот метод должен быть но ничего не делать. если прямоугольник наследуется от четырехугольника.
А потом надо будет дать люлей архитектору,  у которого ы объектах методы,  которые не должны ничего делать 😁
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
мы делали игру на канвасе. там обьекты Машинка, Дорога, Деревья, Кусты, Люди, Здания. У Машинки метод “получить удар” сдвигает ее в обратную сторону от удара на расстояние пропорциональное силе удара. а у Здания метод “получить удар” ничего не делает потому что здание не сдвигается )
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
нужно выдать люлей тому кто написал программу так что она работает только с некоторыми видами фигур. а то я тоже могу написать ее так чтобы она работала только с квадратами 16х16 - и потом жаловаться что никакие другие фигуры не передаются
Если этот метод у прямоугольника ничего не делает, то валятся тесты, потому что они проверяют, что угол после вызова этого метода поменялся, и длины сторон изменились
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Если этот метод у прямоугольника ничего не делает, то валятся тесты, потому что они проверяют, что угол после вызова этого метода поменялся, и длины сторон изменились
тесты должны проверять что у четырехугольника после этого метода как раз ничего не поменялось. если так задумано.
источник