SOLID: принцип инверсии зависимости (DIP).
Принцип инверсии зависимостей (англ. Dependency Inversion Principle, DIP) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах. Входит в пятёрку принципов SOLID. Формулировка · Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. · Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
NET Framework. Общеязыковая среда исполнения (CLR). Управляемые модули и Сборки. Общая система типов (CTS) и Общеязыковая спецификация (CLS). .NET Framework. состоит из: - CLR(Common Language Runtime) – общеязыковая исполняющая среда. - FCL (Framework Class Library) – библиотека классов Framework Преимущества: - единая упрощенная программная модель - нет проблем с версиями (“ад DLL”) - упрощенное развертывание - работа на нескольких платформах - интеграция языков программирования - повторное использование кода - автоматическая сборка мусора - проверка безопасности типов - взаимодействие с существующим кодом CLR - поддерживает приложения, разработанные на различных языках - вместе с Framework распространяются (ассемблер IL, C#, Visual Basic.NET, J#, Jscript) - Устанавливается в каталог: %WINDOWS%\Microsoft.NET\Framework\vверсия Компиляция Управляемый модуль (managed module) – стандартный исполняемый файл Windows, который требует для своего исполнения CLR
Метаданные (metadata) – «данные о данных» – набор таблиц данных, описывающих: - какие типы определены в данном модуле - на какие типы, определенные в других модулях, ссылается данный модуль Использование метаданных: - Устраняют необходимость в заголовочных файлах - IntelliSense
- Верификация - Сериализация/десериализация - Сборка мусора IL (Intermediate Language, промежуточный язык) – не зависящий от процессора псевдо-машинный язык Особенности: - создание и инициализация объектов - вызов виртуальных методов - манипулирование элементами массивов - генерация и обработка исключений - исполняется на любой платформе Исполнение JIT-компиляция (Just-in-Time, «точно в срок»): команды IL во время первого обращения к методу преобразуются в команды процессора (“native” код). При этом осуществляется и верификация – проверка IL-кода на безопасность. CLR работает не с модулями, а со сборками. Сборка (assembly): - логическая группировка одного или нескольких управляемых модулей или файлов ресурсов; - единица повторного использования, безопасности и контроля версий.
Манифест, декларация (manifest) – метаданные, описывающие - файлы, формирующие сборку - общедоступные типы, реализованные в файлах сборки - файлы ресурсов или данных, включенные в сборку
Framework Class Library - FCL основана на объектно-ориентированной парадигме - Содержит несколько тысяч типов - Типы скомпонованы в пространства имен Общая система типов (Common Type System, CTS) – формальная спецификация, описывающая определение типов и их поведение - Типы (класс, структура, перечисление, интерфейс, делегат) - Определяет элементы типов: поле, метод, свойство, событие - Определяет правила видимости типов и доступа к их элементам public, protected, private, internal Типы - Ссылочные (reference types) - Переменная содержит ссылку на объект - При присваивании создается еще одна ссылка на тот же объект - Объекты размещаются в управляемой куче - Типы-значения (value-types) - Переменная содержит сам объект - При присваивании создается копия объекта - Объекты размещаются в стеке - Элементарные (primitive types) Видимость типа - public (открытый) - internal (внутренний) (тип доступен только из сборки, в которой он определен)
Члены типа Константа – идентификатор, представляющий некую постоянную величину Поле Статическое Экземплярное Конструктор экземпляров Конструктор типа – метод, инициализирующий статические поля типа Метод Перегруженный оператор Оператор преобразования — метод определяющий порядок приведения объекта из одного типа в другой Свойство — позволяет применить синтаксис, аналогичный обращению к полю, для получения/изменения состояния объекта Событие – метод, позволяющий объекту/типу посылать уведомления слушающему типу/объекту Тип – позволяет определить вложенные типы Доступ к членам типа private – тип (и вложенные типы) protected – тип и производные от него internal – сборка protected internal – тип, производные от него и любой код в сборке public – любой код из любой сборки Общеязыковая спецификация (Common Language Specification, CLS) – спецификация, описывающая набор правил, позволяющих типам, реализованным на разных языках взаимодействовать друг с другом. - Учет регистра символов - Целые числа без знака - Перегрузка операторов - Методы с переменным числом параметров Общеязыковая спецификация - Учет регистра символов - Целые числа без знака - Перегрузка операторов - Методы с переменным числом параметров
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|