diff --git a/data-bus/README.md b/data-bus/README.md index 675e9fa3c..d65af8732 100644 --- a/data-bus/README.md +++ b/data-bus/README.md @@ -7,24 +7,30 @@ permalink: /patterns/data-bus/ # the permalink to the pattern, to keep this unif # both categories and tags are Yaml Lists # you can either just pick one or write a list with '-'s # usable categories and tags are listed here: https://github.com/iluwatar/java-design-patterns/blob/gh-pages/_config.yml -categories: creational # categories of the pattern +categories: Architectural # categories of the pattern tags: # tags of the pattern - - best - - ever - - awesome + - Java + - Difficulty-Intermediate --- ## Intent -Makes your code awesome -![alt text](./etc/best_pattern.png "Best Pattern Ever") +Allows send of messages/events between components of an application +without them needing to know about each other. They only need to know +about the type of the message/event being sent. + +![data bus pattern uml diagram](./etc/data-bus.urm.png "Data Bus pattern") ## Applicability -Use the Best Pattern Ever pattern when +Use Data Bus pattern when -* you want to be the best -* you need to ... +* you want your components to decide themselves which messages/events they want to receive +* you want to have many-to-many communication +* you want your components to know nothing about each other -## Real world examples +## Related Patterns +Data Bus is similar to -* [Nowhere](http://no.where.com) +* Mediator pattern with Data Bus Members deciding for themselves if they want to accept any given message +* Observer pattern but supporting many-to-many communication +* Publish/Subscribe pattern with the Data Bus decoupling the publisher and the subscriber