Содержание
- 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)








Лыжи презентация
Презентация на тему Эмоции
Причины деградации клея:
Характеристика океана Земли
Натюрморт из гипсовых геометрических тел
Прогулки по Самаре
Гражданин и государство
Князь Олег
1: Цель 2: Развитие IDP_super_light_formula 3: еще одна штука.
Презентация на тему winter зима
Методы снижения рисков аварий и травматизма на площадках хранения нефти и нефтепродуктов
Правонарушение: понятие и виды
Презентация на тему Переживания, испытанные временем (4 класс)
Презентация на тему Этнос нации и народности
Открытка к 8 Марта в технике скрапбукинг
Математика – царица всех наук
Модернизация стабилизационной колонны К-106 установки Г-43-107-М/1
Коллекторный электродвигатель
Особенности АРВ терапии ВИЧ-инфицированных женщин
Мастер-класс "Хлебобулочные изделия"
Архитектура
Роль и значение налога на имущество в доходах бюджета
Презентация по финансовой грамотности на тему _Банки_
Современный подход к управлению предприятием
Дом снаружи и внутри. ИЗО
Великая французская революция. От монархии к республике
Устройство компьютера.(3-4 класс)
Танцевальный коллектив (фотографии)