File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes OO, Patterns, UML and Refactoring and the fly likes Composite Pattern and Decorator Pattern Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Composite Pattern and Decorator Pattern" Watch "Composite Pattern and Decorator Pattern" New topic

Composite Pattern and Decorator Pattern

krishna prasad gunasekaran
Ranch Hand

Joined: Jul 25, 2006
Posts: 158
they both look a bit similar in the way they carry out the job. Like traversing through the component they compose which happens to extend the same interface.
The difference being CP is more of a tree while DP is like a chain with new bahaviors added on the way. somehow they look similar in certain ways. Do they?
My doubt with CP is that how it works in case of Objects of different kind?

have a great day,
krishna prasad
harshvardhan ojha
Ranch Hand

Joined: Jul 26, 2007
Posts: 157

No, there is difference

Use Composite pattern if
1. You need to keep either object or group of objects inside another object.
2. and If behaviour of groups and single object might be common.

Use Decorator if
1. You have variations of an operations at runtime
like :
FileWriter file = new FileWriter("test.txt");
BufferedWriter writer = new BufferedWriter(file); //we can compose one stream from another

I agree. Here's the link:
subject: Composite Pattern and Decorator Pattern
It's not a secret anymore!