'

Паттерн «Specification»

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

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


Слайд 3

Мотивация


Слайд 4

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


Слайд 5

Код 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); } }


Слайд 6

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


Слайд 7

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


×

HTML:





Ссылка: