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








Технологическое оборудование подготовки сырья
Русский лес
ГОТЫ И ЭМО – ДОРОГА В НИКУДА.
СПИСОК ИСТОЧНИКОВ
Май 2012
Основные компоненты содержания школьного образования по инфор-матике. Примерная программа курса информатики для 5-11классов.
Ответственность за преступления
Групповой проект
Політична система суспільства та соціально-політичні механізми здійснення влади
Гражданский бюджет города Сатпаев на 2012-2014 годы
Обеспечение доверия электронных государственных услуг на основе сервисов доверенной третьей стороны
Математическая игра "Путешествие по станциям"
Аттестация педагогических работников государственных и муниципальных образовательных учреждений с 1 января 2011г.
Ибн-Сина. Пути познания
Вышивание
Динамика успеваемости и качества знаний учащихся
Древний Киев (4 класс)
Программа обучения оператора участка измельчения руды. Теория процесса дробления руды
Техническое оснащение кондитерского цеха
Спасибо за мир!
Презентация на тему Награды Великой Отечественной войны
Стандартизация, основные понятия и определения
Mariana Trench
Николай Федорович Ватутин
заповедники россии
Презентация на тему Русская архитектура в XVII веке
Рисование в нетрадиционной технике
A real professional. What does it mean?