This allows the client code to interact with this type of composited object the same throughout the code, regardless of whether it’s a singular instance or a collection of instances. Specifically, the composite pattern aims to treat singular object instances and collections of the same object types uniformly. Next up is the composite design pattern, which is used to separate an abstraction from its implementation so both can be modified on their own. Today we’ll be continuing our exploration of the common Structural design patterns as part of our much bigger Guide to Software Design Patterns series.