Learning
search
Ctrlk
  • Software Engineering Golden Treasury
  • Trail Map
  • Cachingchevron-right
  • Careerchevron-right
  • Computer Sciencechevron-right
  • devopschevron-right
  • General Paradigmschevron-right
    • CAP theorem
    • designing data-intensive applications summary
    • a-philosophy-of-software-design-notes
    • Aspect oriented Programming (AOP)
    • Best Practice
    • Cargo Cult
    • Clean Code
    • Coding reflections
    • Cognitive Complexity
    • Complexity
    • Conventions
    • Design discussions
    • Design
    • Edge Cases
    • Error Handling Checklist
    • Exceptions
    • Feature Flags/toggle
    • Functional requirements
    • Last Responsible Moment
    • Lock In
    • Named Arguments
    • Naming
    • Performance Fallacy
    • Quality
    • Redesign of a system
    • Resuse vs Decoupling
    • Rules for software designs
    • Sad Paths
    • Scaling Webservices
    • Scientific Method
    • stream-processing
    • Upstream and Downstream
    • Patternschevron-right
    • Architecturechevron-right
    • Design architecture aimschevron-right
    • READMEchevron-right
    • Patterns of Enterprise Application Architecturechevron-right
      • Repository Pattern
      • Rules Engines
      • scatter-gather
      • Specification Design Pattern
      • Table Driven Development
      • Workflow Design Patternschevron-right
    • Principleschevron-right
    • programming-typeschevron-right
    • Projects and Software typeschevron-right
    • State Machineschevron-right
  • Otherchevron-right
  • Hardwarechevron-right
  • Integrationchevron-right
  • Languageschevron-right
  • Management & Workflowchevron-right
  • Networkschevron-right
  • Operating Systemschevron-right
  • Other Topicschevron-right
  • persistancechevron-right
  • Securitychevron-right
  • Testing, Maintainablity & Debuggingchevron-right
  • Version Control - Gitchevron-right
  • aichevron-right
gitbookPowered by GitBook
block-quoteOn this pagechevron-down
  1. General Paradigmschevron-right
  2. Patterns of Enterprise Application Architecture

Specification Design Pattern

hashtag
What

  • the specification pattern is a particular software design pattern, whereby business rules can be recombined by chaining the business rules together using boolean logic.

  • https://medium.com/@carlosraphael/specification-design-pattern-in-java-8-bac6f5f943bcarrow-up-right

  • https://www.martinfowler.com/apsupp/spec.pdfarrow-up-right

  • https://dzone.com/articles/specification-pattern-quicklyarrow-up-right

  • https://www.mscharhag.com/java/specification-pattern-in-java-jpaarrow-up-right

  • https://www.mscharhag.com/java/specification-pattern-in-java-jpaarrow-up-right

  • https://github.com/iluwatar/java-design-patterns/tree/master/specificationarrow-up-right

  • https://en.wikipedia.org/wiki/Specification_patternarrow-up-right

  • https://blog.jonblankenship.com/2019/10/04/using-the-specification-pattern-to-build-a-data-driven-rules-engine/arrow-up-right

hashtag
Drawbacks

  • Could just a streams and filters

  • https://blog.ndepend.com/design-patterns-aged-poorly/arrow-up-right

Previousscatter-gatherchevron-leftNextTable Driven Developmentchevron-right

Last updated 5 years ago

Was this helpful?

  • What
  • Drawbacks

Was this helpful?