In computer programming, the specification pattern is a particular software design pattern, whereby business rules can be recombined by chaining the business rules together using boolean logic. The pattern is frequently used in the context of domain-driven design.
A specification pattern outlines a business rule that is combinable with other business rules. In this pattern, a unit of business logic inherits its functionality from the abstract aggregate Composite Specification class. The Composite Specification class has one function called IsSatisfiedBy that returns a boolean value. After instantiation, the specification is "chained" with other specifications, making new specifications easily maintainable, yet highly customizable business logic. Furthermore, upon instantiation the business logic may, through method invocation or inversion of control, have its state altered in order to become a delegate of other classes such as a persistence repository.
As a consequence of performing runtime composition of high-level business/domain logic, the Specification pattern is a convenient tool for converting ad-hoc user search criteria into low level logic to be processed by repositories.
Since a specification is an encapsulation of logic in a reusable form it is very simple to thoroughly unit test, and when used in this context is also an implementation of the humble object pattern.
and 23 Related for: Specification pattern information
In computer programming, the specificationpattern is a particular software design pattern, whereby business rules can be recombined by chaining the business...
used only once, and then deleted Specificationpattern Recombinable business logic in a boolean fashion State pattern A clean way for an object to partially...
Cunningham, Ward (September 1987). Using Pattern Languages for Object-Oriented Program. OOPSLA '87 workshop on Specification and Design for Object-Oriented Programming...
Pattern grading is the process of turning base size or sample size patterns into additional sizes using a size specification sheet or grading increments...
paper A Pattern Language of Competitive Development in 1996. The name Specification by Example was coined by Martin Fowler in 2004. Specification by Example...
individual buyer's specifications by a tailor. Bespoke garments are completely unique and created without the use of a pre-existing pattern, while made to...
two as the same pattern. Although the RELAX NG specification was developed at roughly the same time as the W3C XML Schema specification, the latter was...
Studio B is a 1000 square-foot space that was, per Prince's specifications, patterned after Sunset Sound's Studio 3, with a custom-built Automated Processes...
tiling pattern, with the colors specified in the pattern object, or an uncolored tiling pattern, which defers color specification to the time the pattern is...
Viscount. During the period, over 800 specifications were issued. Each specification name usually followed a pattern. A leading letter was usually present...
interoperable, real-time, scalable data exchanges using a publish–subscribe pattern. DDS addresses the real-time data exchange needs of applications within...
Finder Pattern: 4.2.3 consists from four Position Detection Patterns located at the four corners of the barcode. The size of Position Detection Pattern is...
A Java Portlet Specification defines a contract between portlets and their containers; they provides a convenient programming model for Java portlet developers...
"Modified Conventional Pattern", MCP), as well as dedicated military-purpose designs, conforming to the Canadian Military Patternspecification, in roughly equal...
machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML....
two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since...
an older version of the specification. It is visually similar to the widely seen model 2 codes, but lacks alignment patterns. Differences are in the bottom...
semi-formal specification and a W3C XML Schema for AIML are available. Since early 2013, The A.L.I.C.E foundation has been working on a draft specification for...
Model Pattern, Really?". Simple Thread, LLC. 5 September 2009. Retrieved 17 September 2020. MSDN: Provider Model Design Pattern and Specification ProviderBase...
the typical pattern, or one of the typical patterns, of the language to which it belongs. A verb whose conjugation follows a different pattern is called...
expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find...
elevator can arrive at that floor at most twice. The authors of "Patterns in Property Specification for Finite-State Verification" translate this requirement...