Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Перечислите, какие связи между классами выделяются в графической нотации OMT, как они обозначаются. ⇐ ПредыдущаяСтр 3 из 3
§ Инстанцирование § Наследование
§ Агрегирование
§ Осведомленность (ассоциация, использование) Поясните разницу между агрегированием и осведомленностью.
И агрегирование, и осведомленность – способы композиции объектов и делегирования функциональности Агрегирование Один объект владеет другим или несет за него ответственность Агрегат и его составляющие имеют одинаковое время жизни Осведомленность Одному объекту известно о другом объекте Осведомленные объекты не несут никакой ответственности друг за друга Осведомленность более слабое отношение, чем агрегирование Опишите графическую нотацию OMT для диаграмм взаимодействия.
§ Время на диаграммах взаимодействий откладывается сверху вниз § Сплошная вертикальная черта означает время жизни объекта, до момента создания объекта вертикальная линия идет пунктиром § Вертикальный прямоугольник говорит о том, что объект активен, т.е. обрабатывает какой-либо запрос (выполняет какой-либо метод) § Соглашение об именовании объектов такое же, как для диаграмм объектов § Запросы, посылаемые другим объектам (вызовы методов), обозначаются горизонтальной стрелкой, указывающей на объект получатель; имя запроса (метода) показывается над стрелкой § Запрос на создание объекта обозначается горизонтальной пунктирной стрелкой § Запрос объекта самому себе изображается стрелкой на этот же объект В чем заключается принцип программирования в соответствии с интерфейсом, а не реализацией?
§ Взаимодействие объектов должно проходить строго через интерфейс, т.к. клиенту не нужно знать информацию о конкретных типах объектов § Такой подход может кардинально уменьшить число зависимостей между подсистемами § Но, т.к. клиенты не знают, объекты какого конкретного класса будут созданы, следовательно, самостоятельно создать эти объекты не могут; здесь приходят на помощь порождающие паттерны Изобразите диаграмму классов для паттерна «Абстрактная фабрика».
Как связаны между собой паттерны «Фабричный метод» и «Абстрактная фабрика»? Абстрактная фабрика реализуется с помощью фабричных методов. Фабричный метод - является частным случаем абстрактной фабрики с одним видом продукта.
Разница лишь в том, что фабрика создает семейства (наборы) объектов
Опишите на языке C# несколько классов/интерфейсов, в совокупности реализующих паттерн «Абстрактная фабрика». КОД:/* type1 of objects */ interface Type1 { void DoIt(); } class Type1Object1: Type1 { public void DoIt() { Console.WriteLine("type 1 object 1"); } } class Type1Object2: Type1 { public void DoIt() { Console.WriteLine("type 1 object 2"); } } /* type2 of objects */ interface Type2 { void DoIt(); } class Type2Object1: Type2 { public void DoIt() { Console.WriteLine("type 2 object 1"); } } class Type2Object2: Type2 { public void DoIt() { Console.WriteLine("type 2 object 2"); } } /* фабрики */ interface Factory { Type1 GetType1(); Type2 GetType2(); } class ConcreteFactory1: Factory { public Type1 GetType1() { return new Type1Object1(); } public Type2 GetType2() { return new Type2Object1(); } } class ConcreteFactory2: Factory { public Type1 GetType1() { return new Type1Object2(); } public Type2 GetType2() { return new Type2Object2(); } } //main program class Program { static void Main(string[] args) { Factory factory = new ConcreteFactory2(); //определяем какой объет будет создаваться Type1 obj1 = factory.GetType1(); Type2 obj2 = factory.GetType2(); obj1.DoIt(); obj2.DoIt(); Console.ReadLine(); } } В каких ситуациях следует использовать паттерн «Прототип»? С помощью каких средств в.NET можно реализовать данный паттерн?
§ Задает виды создаваемых объектов с помощью экземпляра-прототипа и создает новые объекты путем копирования этого прототипа § Используется когда/для: инстанцируемые классы определяются во время выполнения, например с помощью динамической загрузки экземпляры класса могут находиться в одном из не очень большого числа различных состояний; может оказаться удобнее установить соответствующее число прототипов и клонировать их, а не инстанцировать каждый раз класс вручную в подходящем состоянии.
|
|||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 166; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.234.141 (0.006 с.) |