Содержание
- 2. Ценности качественного кода Емельянов В.А.: Объектно-ориентированное программирование
- 3. Принципы SOLID SOLID – 5 принципов объектно-ориентированного программирования, описывающих архитектуру программного обеспечения. Все шаблоны проектирования (паттерны)
- 4. SRP – принцип единой ответственности Смысл SRP: на каждый объект должна быть возложена одна единственная обязанность
- 5. SRP – принцип единой ответственности Емельянов В.А.: Объектно-ориентированное программирование Каждый класс имеет свои обязанности в программе
- 6. SRP – принцип единой ответственности public class Employee { public int ID { get; set; }
- 7. SRP – принцип единой ответственности Согласно SRP, необходимо написать отдельный класс для ответственности по генерации отчетов:
- 8. OCP – принцип открытости/закрытости Емельянов В.А.: Объектно-ориентированное программирование Смысл OCP: Классы (модули) должны быть: открыты для
- 9. OCP – принцип открытости/закрытости Емельянов В.А.: Объектно-ориентированное программирование Принцип OCP рекомендует проектировать систему так, чтобы в
- 10. OCP – принцип открытости/закрытости Емельянов В.А.: Объектно-ориентированное программирование 1. Интерфейсы фиксированы, но на их основе можно
- 11. OCP – принцип открытости/закрытости public class EmployeeReport { //свойство - тип отчета public string TypeReport {
- 12. OCP – принцип открытости/закрытости public class IEmployeeReport { public virtual void GenerateReport(Employee em) { //Базовая реализация,
- 13. OCP – принцип открытости/закрытости Емельянов В.А.: Объектно-ориентированное программирование Применение OCP позволяет: создавать системы, которые будет сохранять
- 14. LSP – принцип подстановки Барбары Лисков Смысл LSP: «вы должны иметь возможность использовать любой производный класс
- 15. LSP – принцип подстановки Барбары Лисков Емельянов В.А.: Объектно-ориентированное программирование Согласно LSP, классы-наследники (Manager и SalesPerson)
- 16. LSP – принцип подстановки Барбары Лисков public class Manager : Employee { public override string GetWorkDetails(int
- 17. LSP – принцип подстановки Барбары Лисков static void Main(string[] args) { List list = new List
- 18. LSP – принцип подстановки Барбары Лисков Для решения этой проблемы в C# необходимо просто разбить функционал
- 19. ISP – принцип разделения интерфейсов Емельянов В.А.: Объектно-ориентированное программирование Смысл ISP: много специализированных интерфейсов лучше, чем
- 20. ISP – принцип разделения интерфейсов Пусть есть одна база данных (БД) для хранения данных всех типов
- 21. ISP – принцип разделения интерфейсов Допустим все классы Employee наследуют интерфейс IEmployee для сохранения данных в
- 22. ISP – принцип разделения интерфейсов РЕЗУЛЬТАТ: теперь, класс JuniorEmployee будет реализовывать только интерфейс IOperationAdd, а SeniorEmployee
- 23. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование Смысл DIP: «зависеть от абстракций, а не
- 24. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование Многослойная архитектура ПО: В любой хорошо структурированной
- 25. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование Presentation Layer (уровень представления) – уровень, с
- 26. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование 1. Классы (модули) высокого уровня реализуют бизнес-правила
- 27. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование UML
- 28. DIP – принцип инверсии зависимостей ЗАДАЧА: Требуется составить программу для расчета суммарной скидки товара, который хранится
- 29. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование public class Product { public double Cost
- 30. DIP – принцип инверсии зависимостей C# Емельянов В.А.: Объектно-ориентированное программирование 19 20 21 22 23 24
- 31. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование class Program { static void Main(string[] args)
- 32. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование Применяем DIP: UML
- 33. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование public interface IProductStorage { IEnumerable GetProducts(); }
- 34. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование public class Warehouse : IProductStorage { public
- 35. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование public class ProductService { public double GetAllDiscount(IProductStorage
- 36. DIP – принцип инверсии зависимостей Емельянов В.А.: Объектно-ориентированное программирование Проблемы архитектуры ПО, которые устраняются с применением
- 38. Скачать презентацию