Паттерн «Specification»


The Presentation inside:

Slide 0

Паттерн «Specification» Презентацию подготовил студент 245 группы Математико-механического факультета СПбГУ Мусаев Мехти e-mail: [email protected]


Slide 1

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


Slide 2

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


Slide 3

Мотивация


Slide 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); } }


Slide 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); } }


Slide 6

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


Slide 7

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


×

HTML:





Ссылка: