tgoop.com/prog_way_blog/74
Create:
Last Update:
Last Update:
SOLID - Принцип подстановки Барбары Лисков.
Почему-то я слышал мнение, что это самый сложный для понимания принцип, но по моему мнение крайне ошибочное.
LSP - Liskov substitution principle - один из самых простых принципов. Суть его заключается в том, что компоненты программы (функции, модули и т.д.) должны одинаково успешно обрабатывать как экземпляр класса родителя, так и экземпляр потомка класса не зная об этом.
Для понимания достаточно описать супер простой пример, скажем, на том же питоне:
class Person:
def __init__(self, name):
self.name = name
class Programmer(Person):
def __init__(self, name, language):
Person.__init__(self, name)
self.language = language
person = Person('Денис')
programmer = Programmer('Макс', 'Python')
А теперь реализуем функцию, которая вернёт имя человека:
def getName(person):
return person.name
Вообще было бы лучше сделать соответствующий метод класса, но пишем так для примера.
Вызовем функцию:
print(getName(person)) // Денис
print(getName(programmer)) // Макс
Всё прекрасно работает как с классом родителем, так и с классом наследником. Если бы было бы иначе, то такая ситуация - нарушение LSP.
В оригинале Барбара Лисков даёт определение этого принципа чисто математически. Возможно, именно из-за этого оно и кажется непонятным. Надеюсь, что я смог объяснить яснее.
Спасибо за прочтение, это важно ❤️
#principles #theory
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/74