Skip to content

The Java 8+ specification pattern as described by Eric Evans and Martin Fowler ☕

License

Notifications You must be signed in to change notification settings

u-learn/specification-pattern

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Specification Pattern

Build Status Release

The specification pattern as described by Eric Evans and Martin Fowler.

Users

We use it in the production at Czech Radio together with our repository classes, see the Repository Pattern.

Getting Started

Instalation

The installation of the package is possible via JitPack. To add a dependency on Specification latest release using Maven, use the following:

Step 1. Add the repository to your build file

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Step 2. Add the latest release dependency

<dependency>
    <groupId>com.github.uetoyo</groupId>
    <artifactId>specification</artifactId>
    <version>v0.5.0</version>
</dependency>

For another build system check the link above.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated on this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Overviev of the pattern

Composite Specification

Nullary Composite Specification

In the original paper1 it is called the Leaf Specification.

Unary Composite Specification

Binary Composite Specification

Multiary Composite Specification

References

1 https://www.martinfowler.com/apsupp/spec.pdf

About

The Java 8+ specification pattern as described by Eric Evans and Martin Fowler ☕

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.7%
  • Shell 0.3%