Содержание
- 2. Что такое SOLID SOLID - это аббревиатура пяти основных принципов дизайна классов в объектно-ориентированном проектировании. Аббревиатура
- 3. Основные принципы Single responsibility - Принцип единственной обязанности Open-closed - Принцип открытости/закрытости Liskov substitution - Принцип
- 4. Single responsibility Принцип единственной обязанности Класс или модуль должны иметь одну и только одну причину измениться.
- 5. Пример нарушения принципа SRP class Order { public void calculate(){ ... } public void addItem(Product product){
- 6. Как исправить class Order { public void calculate(); public void addItem(Product product){ ... } public List
- 7. Но... Существует, например, паттерн Active Record, который нарушает принцип SRP Active Record может быть успешно использован
- 8. Open-closed Принцип открытости/закрытости Объекты проектирования (классы, функции, модули и т.д.) должны быть открыты для расширения, но
- 9. Пример нарушения OCP class MessageSender { … public void send(String message, MessageType type){ if(type == MessageType.SMS)
- 10. Как исправить Воспользуемся паттерном “Стратегия” interface SendingStrategy { void send(String message); } class MessageSender { private
- 11. Как исправить(продолжение) Конкретные стратегии отправки class EmailSendingStrategy implements SendingStrategy { @Override public void send(String message) {
- 12. Liskov substitution Принцип подстановки Барбары Лисков Роберт С. Мартин определил этот принцип так: Функции, которые используют
- 13. Замещение T S Объекты типа T могут быть замещены объектами типа S без каких-либо изменений желательных
- 14. Нарушение принципа LSP Circle-ellipse problem Square-rectangle problem
- 15. Square-rectangle problem Является ли класс Квадрат подклассом класса Прямоугольник? Rectangle Square ?
- 16. Класс Rectangle class Rectangle { private double width; private double height; public double getWidth() { return
- 17. Класс Square class Square extends Rectangle { public void setWidth(double width) { this.setSide(width); } public void
- 18. В чем же проблема? public class LiskovViolation { public static void main(String[] args) { Rectangle rectangle
- 19. Как исправить Если использовать концепцию неизменяемого объекта (immutable object), то принцип не будет нарушаться. Необходимо убрать
- 20. Interface segregation Принцип разделения интерфейса Слишком «толстые» интерфейсы необходимо разделять на более маленькие и специфические, чтобы
- 21. “Толстый” интерфейс Если среди методов интерфейса можно выделить группы методов, которые нужны определенным пользователям интерфейса, то
- 22. Пример нарушения ISP interface Person { void goToWork(); void withdrawSalary(); void eat(); } Если мы захотим
- 23. Как исправить public interface Person { void eat(); } public interface Worker { void goToWork(); void
- 24. Dependency inversion Принцип инверсии зависимостей Все взаимосвязи в программе должны поддерживаться с помощью абстракных классом или
- 25. Нарушение принципа DIP public class Crawler { public void saveHtmlDocument() { DomBasedHtmlParser parser = new DomBasedHtmlParser();
- 26. Как исправить. Вариант 1 public class Crawler { private HtmlParser parser; public Crawler(HtmlParser parser) { this.parser
- 28. Скачать презентацию
















![В чем же проблема? public class LiskovViolation { public static void main(String[]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382251/slide-17.jpg)








День открытых дверей. Приемная кампания на 2021-2022 учебный год (для родителей)
Подобные треугольники
Политические партии России
Модуль Политическая сфера. ЕГЭ 2020
Музыкальная школа
Энергоаудит и Энергоэффективность
Памятники Пермского края
Отдел Голосеменные (Хвойные)
AlephOne
Анализ результатов хозяйственно-финансовой деятельности аптечной организации
Российские региональные университеты: вызовы и перспективы
Презентация 3
Полимерные покрытия SSAB
Объект политологии
Изменение формы представления информации
KAZPROMAVTOMATIKA
Презентация на тему Иван Алексеевич Бунин господин из сан-франциско
ООО «Дива»
«СЕМЬЯ - любви великой царство. В ней вера, праведность и сила. СЕМЬЯ - опора государства, Стран
С ЛИЦЕЙСКОГО ПОРОГА…
Распределительные устройства
Что?
Крестьянская утварь
Презентация инвестиционной привлекательности Челябинской области
Ганс Христиан Андерсен
Ирбитский пленэр. Выставка
Функциональные стили
Общественная кампания в Котласском местном отделении ВОГ