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








Презентация на тему Административная ответственность
Формула цветка
Украшения из ленточек
Православные переходящие праздники
Политика управления операционными активами корпорации
Современное состояние и тенденции развития консультационной службы в сельском хозяйстве Contemporary situation and tendencies in agricultural extension in the w
Диагностика – основа качества образования
Графический редактор PAINT
Друзья Если плачет кто – то рядом, Если слезы льются градом, Подойдите вы к нему И спросите «Почему?» Это, дети, сделать надо – Плох
Pour bien exprimer ses id es oralement
01.06. - 19.06.2009 г. МОУ «Нововилговская средняя школа 3»
Цвет. Форма. Величина
Презентация на тему А.Твардовский «По праву памяти»
Деловая игра для учащихся Притобольной средней школы
Ландшафтный дизайн. Примеры работ
Видеосистема компьютера
Система контроля за перемещением отходовна территории Московского региона
Презентация по истолрииииииии
Logo Project Status and Notification
Boulder cerenovu
Параллельность прямых, прямой и плоскости
Значение суффиксов
Инновационные направления развития деятельности по повышению квалификации и профессиональной переподготовке специалистов АПК
Немного о современных танцах…
Ветераны войны!
Публичный отчет директора школы №753Патрикеевой И.Е.
Поздравление: все цветы и фрукты Вам!
Перспективы 2007