ПАТТЕРН «SPECIFICATION» Презентацию подготовил студент 245 группы Математико - механического факультета СПбГУ Мусаев Мехти e-mail: mehty.musaev@gmail.com.

Презентация:



Advertisements
Похожие презентации
Паттерн Template Method Презентацию подготовил студент 245 группы Математико-механического факультета СПбГУ Мусаев Мехти
Advertisements

ORM Паттерны. Repository Repository (хранилище) выступает в роли посредника между слоем домена и слоем отображения данных, предоставляя интерфейс в виде.
Паттерн проектирования «STATE» Насибуллин Арсений (245 группа, )
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Паттерн проектирования «Adapter» Насибуллин Арсений (245 группа )
Название презентации Название презентации Название презентации.
Обобщения ( шаблоны ) Лекция 5. Тип, метод или интерфейс параметризованный другим типом Обобщенный тип Тип ( класс, структура ), который параметризован.
Лекция 2: Описание класса 1. Поля 2. Методы 3. Конструкторы.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Обобщения ( generics) Обобщения – это классы, структуры, интерфейсы и методы, в которых некоторые типы сами являются параметрами. Эти типы перечисляются.
Диалоги ShowDialogСоздает модальный диалог. После вызова ShowDialog следующий оператор не выполняется пока не произойдет выход из метода. Пока не закрыт.
1 ©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
1 © Luxoft Training 2013 Модуль Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в.
Подбор материала и презентация: Сазонов Д.О. Кафедра ПМиЭММ ВГТА Динамические объекты, ссылки.
EXtreme Programming XP Тема 3. XP Пусть есть некоторая информационная система для банков. В качестве основной валюты для расчетов используется доллар,
Пользовательские действия (custom actions) в JSP. JSTL.
Microsoft TechDays Межов Александр Разработчик ПО ОАО ЧЭМК
Транксрипт:

ПАТТЕРН «SPECIFICATION» Презентацию подготовил студент 245 группы Математико - механического факультета СПбГУ Мусаев Мехти

«Specification» (« Спецификация ») – шаблон поведения приложения. Классифицируется на Hard Coded Specification, Parameterized Specification. Название и классификация

1. Когда надо выбрать подмножество объектов на основе некоторого критерия, и обновлять выбранное время от времени. 2. Когда надо проверить, что только соответствующие объекты используются для определенной роли 3. Когда надо описать что должен делать объект без описания деталей ( как объект это делает ). Назначение

Мотивация Applicant Class Fields: isQualitifiedForloan Properties: Age, CreditRating, Id, TotalEquity ApplicantLoanSpecification Class Methods: IsSatisfiedBy ISpecification Generic Interface Methods: IsSatisfiedBy

Код public interface ISpecification { bool IsSatisfiedBy(object candidate); } ISpecification.cs : public interface ISpecification { bool IsSatisfiedBy(T candidate); } ApplicantLoanSpecification.cs : public class ApplicantLoanSpecification : ISpecification { public bool IsSatisfiedBy(Applicant candidate) { return (candidate.CreditRating == 10 && candidate.TotalEquity > 45000); }

Код Application.cs : public class Applicant { public Int32 Id { get; set; } public Int32 Age { get; set; } public Int32 CreditRating { get; set; } public decimal TotalEquity { get; set; } private readonly ApplicantLoanSpecification isQualitifiedForloan; public Applicant() { isQualitifiedForloan = new ApplicantLoanSpecification(); } public bool CanApplyForLoan() { return isQualitifiedForloan.IsSatisfiedBy(this); }

Применимость Задача про трейдера.

Родственные паттерны Strategy Interpreter