Thinking about the Bridge (Design Pattern), we may have a situation where there are dependencies between different facets.

Benefits:
- Allows polymorphic creation of objects
- Nicely encapsulates object creation - client depends on abstraction not implementation
Disadvantages:
- Creation is bound to a containing class which contains other functionality
- Switching creation independently of other functionality is impossible