On the Composability of Design Patterns