31 lines
774 B
Markdown
Raw Normal View History

2016-05-31 20:12:27 +02:00
---
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
## Class diagram
2016-06-04 20:06:32 +02:00
![alt text](./etc/abstract-document.png "Abstract Document Traits and Domain")
2016-05-31 20:12:27 +02:00
## Applicability
Use the Abstract Document Pattern when
2016-06-04 20:06:32 +02:00
* there is a need to add new properties on the fly
* you want a flexible way to organize domain in tree like structure
* you want more loosely coupled system
2016-05-31 20:12:27 +02:00
2016-06-04 20:06:32 +02:00
## Credits
2016-05-31 20:12:27 +02:00
2016-06-04 20:06:32 +02:00
* [Wikipedia: Abstract Document Pattern](https://en.wikipedia.org/wiki/Abstract_Document_Pattern)
* [Martin Fowler: Dealing with properties](http://martinfowler.com/apsupp/properties.pdf)