diff --git a/abstract-document/README.md b/abstract-document/README.md new file mode 100644 index 000000000..d9538c0bd --- /dev/null +++ b/abstract-document/README.md @@ -0,0 +1,26 @@ +--- +layout: pattern +title: Abstract Document +folder: abstract-document +permalink: /patterns/abstract-document/ +categories: Structural +tags: + - Java + - Difficulty-Intermediate +--- + +## Intent +Achieve flexibility of untyped languages and keep the type-safety + +![alt text](./etc/abstract-document_1.png "Abstract Document") + +## Applicability +Use the Abstract Document Pattern when + +* there is a need for dynamic properties +* you want a better way to organize domain +* you want loosely coupled system with flexibility of untyped languages + +## Real world examples + +* [Speedment](https://github.com/speedment/speedment) \ No newline at end of file diff --git a/abstract-document/pom.xml b/abstract-document/pom.xml new file mode 100644 index 000000000..e7fc58047 --- /dev/null +++ b/abstract-document/pom.xml @@ -0,0 +1,42 @@ + + + + 4.0.0 + + java-design-patterns + com.iluwatar + 1.12.0-SNAPSHOT + + abstract-document + + + junit + junit + test + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index af807b8ba..362519090 100644 --- a/pom.xml +++ b/pom.xml @@ -125,7 +125,8 @@ mutex semaphore hexagonal - + abstract-document +