--- 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)