Decoupling

Model-View-ViewModel
Also known as Model–View–Binder Intent To apply “Separation of Concerns” to separate the logic from the UI components and allow developers to work on UI without affecting the logic and vice versa. Explanation Wikipedia says Model–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the graphical user interface (the view) – be it via a markup language or GUI code – from the development of the business logic or back-end logic (the model) so that the view is not dependent on any specific model platform.
Mute Idiom
Intent Provide a template to suppress any exceptions that either are declared but cannot occur or should only be logged; while executing some business logic. The template removes the need to write repeated try-catch blocks. Class diagram Applicability Use this idiom when an API declares some exception but can never throw that exception eg. ByteArrayOutputStream bulk write method. you need to suppress some exception just by logging it, such as closing a resource.
Tolerant Reader
Intent Tolerant Reader is an integration pattern that helps creating robust communication systems. The idea is to be as tolerant as possible when reading data from another service. This way, when the communication schema changes, the readers must not break. Explanation Real world example We are persisting rainbowfish objects to file and later on they need to be restored. What makes it problematic is that rainbowfish data structure is versioned and evolves over time.
Balking
Intent Balking Pattern is used to prevent an object from executing a certain code if it is in an incomplete or inappropriate state. Explanation Real world example There’s a start-button in a washing machine to initiate the laundry washing. When the washing machine is inactive the button works as expected, but if it’s already washing the button does nothing. In plain words Using the balking pattern, a certain code executes only if the object is in particular state.
Guarded Suspension
Intent Use Guarded suspension pattern to handle a situation when you want to execute a method on object which is not in a proper state. Class diagram Applicability Use Guarded Suspension pattern when the developer knows that the method execution will be blocked for a finite period of time Related patterns Balking
Intercepting Filter
Intent Provide pluggable filters to conduct necessary pre-processing and post-processing to requests from a client to a target Class diagram Applicability Use the Intercepting Filter pattern when a system uses pre-processing or post-processing requests a system should do the authentication/ authorization/ logging or tracking of request and then pass the requests to corresponding handlers you want a modular approach to configuring pre-processing and post-processing schemes Tutorials Introduction to Intercepting Filter Pattern in Java Real world examples javax.
Mediator
Intent Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently. Explanation Real-world example Rogue, wizard, hobbit, and hunter have decided to join their forces and travel in the same party. To avoid coupling each member with each other, they use the party interface to communicate with each other.
Partial Response
Intent Send partial response from server to client on need basis. Client will specify the the fields that it need to server, instead of serving all details for resource. Class diagram Applicability Use the Partial Response pattern when Client need only subset of data from resource. To avoid too much data transfer over wire Credits Common Design Patterns
Pipeline
Intent Allows processing of data in a series of stages by giving in an initial input and passing the processed output to be used by the next stages. Explanation The Pipeline pattern uses ordered stages to process a sequence of input values. Each implemented task is represented by a stage of the pipeline. You can think of pipelines as similar to assembly lines in a factory, where each item in the assembly line is constructed in stages.