Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемse.math.spbu.ru
1 ПАТТЕРН «SPECIFICATION» Презентацию подготовил студент 245 группы Математико - механического факультета СПбГУ Мусаев Мехти
2 «Specification» (« Спецификация ») – шаблон поведения приложения. Классифицируется на Hard Coded Specification, Parameterized Specification. Название и классификация
3 1. Когда надо выбрать подмножество объектов на основе некоторого критерия, и обновлять выбранное время от времени. 2. Когда надо проверить, что только соответствующие объекты используются для определенной роли 3. Когда надо описать что должен делать объект без описания деталей ( как объект это делает ). Назначение
4 Мотивация Applicant Class Fields: isQualitifiedForloan Properties: Age, CreditRating, Id, TotalEquity ApplicantLoanSpecification Class Methods: IsSatisfiedBy ISpecification Generic Interface Methods: IsSatisfiedBy
5 Код 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); }
6 Код 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); }
7 Применимость Задача про трейдера.
8 Родственные паттерны Strategy Interpreter
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.