Package design.pattern.structural


package design.pattern.structural
  • Interfaces
    Class
    Description
    AbstractDocument aims to provide a consistent way to handle hierarchical and tree-like data structure without losing the type safety of the language
    Adapter is used to adapt two different object when client has one object and our api expects a different object
    Ambassador 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 implementation LinkedList with the abstraction FIFOCollection
    BusinessDelegate is used to add an abstraction layer between presentation tier and business tier
    Composite is used to handle the parent node and leaf node as same for the client
    CompositeEntity allows a set of related objects to be represented and managed by a unified object
    Decorator is used to add a simple functionality to existing classes without changing the total behavior
    Facade 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) values
    Proxy is used to act as a stand-in instance for the real instance.