Package design.pattern.structural
package design.pattern.structural
-
InterfacesClassDescription
AbstractDocument
aims to provide a consistent way to handle hierarchical and tree-like data structure without losing the type safety of the languageAdapter
is used to adapt two different object when client has one object and our api expects a different objectAmbassador
is used to offload the common functionality like logging, retry, etc., away from the shared legacy application into the client code itself.Bridge
is used when we want to isolate the implementationLinkedList
with the abstractionFIFOCollection
BusinessDelegate
is used to add an abstraction layer between presentation tier and business tierComposite
is used to handle the parent node and leaf node as same for the clientCompositeEntity
allows a set of related objects to be represented and managed by a unified objectDecorator
is used to add a simple functionality to existing classes without changing the total behaviorFacade
is to create a simple use-case interface which can be directly used by the user without knowing/implementing all related classes needed for that use-case by the user.Flyweight
is used when we can split the object as intrinsic (shared by all instances) and extrinsic (context based values which will be taken care by the client) valuesProxy
is used to act as a stand-in instance for the real instance.