Примеры Perl-кода для паттернов SOLID
- 39
- 0
- Опубликовано: 2011-05-12
# Open Closed Principle
"Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification."
Программные сущности должны быть открыты для расширения, но закрыты для модификации.
Это может быть обеспечено либо за счет наследования и полиморфизма, либо за счет помещения в объект класса ссылки на объект, производящий необходимую обработку данных. Во многих случаях второй путь предпочтительнее, поскольку присоединение и/или замена обрабатывающих объектов может осуществляться непосредственно во время выполнения программы.
# Single Responsibility Principle
"There should never be more than one reason for a class to change"
Не должно быть более одной причины для модификации класса. Это может быть обеспечено путем узкой специализации разрабатываемых классов.
# Liskov's Substitution Principle
"Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it"
Классы должны быть заменяемы своими наследниками. Это означает, что в любом месте вместо любого класса мы можем использовать любого его наследника. Таким образом, наследник должен расширять, а не изменять поведение предка, что и иллюстрируется в этом примере классом timestamp, который наследуется от класса date.