Categorize and tag all patterns #213
This commit is contained in:
parent
fefb51c46e
commit
7ac7e3b097
@ -7,6 +7,7 @@ categories: Creational
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Also known as:** Kit
|
||||
|
@ -7,6 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Also known as:** Wrapper
|
||||
|
@ -4,7 +4,10 @@ title: Async Method Invocation
|
||||
folder: async-method-invocation
|
||||
permalink: /patterns/async-method-invocation/
|
||||
categories: Concurrency
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Functional
|
||||
---
|
||||
|
||||
**Intent:** Asynchronous method invocation is pattern where the calling thread
|
||||
|
@ -7,6 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Also known as:** Handle/Body
|
||||
|
@ -7,6 +7,7 @@ categories: Creational
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Separate the construction of a complex object from its
|
||||
|
@ -4,7 +4,9 @@ title: Business Delegate
|
||||
folder: business-delegate
|
||||
permalink: /patterns/business-delegate/
|
||||
categories: Business Tier
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** The Business Delegate pattern adds an abstraction layer between
|
||||
|
@ -6,6 +6,8 @@ permalink: /patterns/caching/
|
||||
categories: Other
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Caching
|
||||
---
|
||||
|
||||
**Intent:** To avoid expensive re-acquisition of resources by not releasing
|
||||
|
@ -4,7 +4,11 @@ title: Callback
|
||||
folder: callback
|
||||
permalink: /patterns/callback/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Functional
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Callback is a piece of executable code that is passed as an
|
||||
|
@ -7,6 +7,7 @@ categories: Behavioral
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Avoid coupling the sender of a request to its receiver by giving
|
||||
|
@ -7,6 +7,7 @@ categories: Behavioral
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Also known as:** Action, Transaction
|
||||
|
@ -7,6 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Compose objects into tree structures to represent part-whole
|
||||
|
@ -3,7 +3,7 @@ layout: pattern
|
||||
title: Data Access Object
|
||||
folder: dao
|
||||
permalink: /patterns/dao/
|
||||
categories: Architectural
|
||||
categories: Persistence Tier
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
|
@ -7,6 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Also known as:** Wrapper
|
||||
|
@ -4,7 +4,9 @@ title: Dependency Injection
|
||||
folder: dependency-injection
|
||||
permalink: /patterns/dependency-injection/
|
||||
categories: Behavioral
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Dependency Injection is a software design pattern in which one or
|
||||
|
@ -4,7 +4,10 @@ title: Double Checked Locking
|
||||
folder: double-checked-locking
|
||||
permalink: /patterns/double-checked-locking/
|
||||
categories: Concurrency
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Reduce the overhead of acquiring a lock by first testing the
|
||||
|
@ -4,7 +4,10 @@ title: Double Dispatch
|
||||
folder: double-dispatch
|
||||
permalink: /patterns/double-dispatch/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Double Dispatch pattern is a way to create maintainable dynamic
|
||||
|
@ -4,7 +4,9 @@ title: Event Aggregator
|
||||
folder: event-aggregator
|
||||
permalink: /patterns/event-aggregator/
|
||||
categories: Structural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** A system with lots of objects can lead to complexities when a
|
||||
|
@ -4,7 +4,10 @@ title: Execute Around
|
||||
folder: execute-around
|
||||
permalink: /patterns/execute-around/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Execute Around idiom frees the user from certain actions that
|
||||
|
@ -7,6 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Provide a unified interface to a set of interfaces in a subsystem.
|
||||
|
@ -7,6 +7,7 @@ categories: Other
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Functional
|
||||
---
|
||||
|
||||
**Intent:** A fluent interface provides an easy-readable, flowing interface, that often mimics a domain specific language. Using this pattern results in code that can be read nearly as human language.
|
||||
|
@ -4,7 +4,9 @@ title: Flux
|
||||
folder: flux
|
||||
permalink: /patterns/flux/
|
||||
categories: Presentation Tier
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Flux eschews MVC in favor of a unidirectional data flow. When a
|
||||
|
@ -7,6 +7,8 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
- Caching
|
||||
---
|
||||
|
||||
**Intent:** Use sharing to support large numbers of fine-grained objects
|
||||
|
@ -4,7 +4,9 @@ title: Front Controller
|
||||
folder: front-controller
|
||||
permalink: /patterns/front-controller/
|
||||
categories: Presentation Tier
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Introduce a common handler for all requests for a web site. This
|
||||
|
@ -4,7 +4,9 @@ title: Half-Sync/Half-Async
|
||||
folder: half-sync-half-async
|
||||
permalink: /patterns/half-sync-half-async/
|
||||
categories: Concurrency
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** The Half-Sync/Half-Async pattern decouples synchronous I/O from
|
||||
|
@ -4,7 +4,9 @@ title: Intercepting Filter
|
||||
folder: intercepting-filter
|
||||
permalink: /patterns/intercepting-filter/
|
||||
categories: Behavioral
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Provide pluggable filters to conduct necessary pre-processing and
|
||||
|
@ -7,6 +7,7 @@ categories: Behavioral
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Given a language, define a representation for its grammar along
|
||||
|
@ -4,7 +4,10 @@ title: Layers
|
||||
folder: layers
|
||||
permalink: /patterns/layers/
|
||||
categories: Architectural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Spring
|
||||
---
|
||||
|
||||
**Intent:** Layers is an architectural style where software responsibilities are
|
||||
|
@ -4,7 +4,11 @@ title: Lazy Loading
|
||||
folder: lazy-loading
|
||||
permalink: /patterns/lazy-loading/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Idiom
|
||||
- Caching
|
||||
---
|
||||
|
||||
**Intent:** Lazy loading is a design pattern commonly used to defer
|
||||
|
@ -7,6 +7,7 @@ categories: Behavioral
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Also known as:** Token
|
||||
|
@ -7,6 +7,7 @@ categories: Integration
|
||||
tags:
|
||||
- Java
|
||||
- EIP
|
||||
- Camel
|
||||
---
|
||||
|
||||
**Intent:** When two applications communicate using a messaging system they do it by using logical addresses
|
||||
|
@ -4,7 +4,9 @@ title: Model-View-Controller
|
||||
folder: model-view-controller
|
||||
permalink: /patterns/model-view-controller/
|
||||
categories: Presentation Tier
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Separate the user interface into three interconnected components:
|
||||
|
@ -4,7 +4,9 @@ title: Model-View-Presenter
|
||||
folder: model-view-presenter
|
||||
permalink: /patterns/model-view-presenter/
|
||||
categories: Presentation Tier
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Apply a "Separation of Concerns" principle in a way that allows
|
||||
|
@ -4,7 +4,9 @@ title: MonoState
|
||||
folder: monostate
|
||||
permalink: /patterns/monostate/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Enforces a behaviour like sharing the same state amongst all instances.
|
||||
|
@ -4,7 +4,9 @@ title: Multiton
|
||||
folder: multiton
|
||||
permalink: /patterns/multiton/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Ensure a class only has limited number of instances, and provide a
|
||||
|
@ -4,7 +4,9 @@ title: Naked Objects
|
||||
folder: naked-objects
|
||||
permalink: /patterns/naked-objects/
|
||||
categories: Architectural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Expert
|
||||
---
|
||||
|
||||
**Intent:** The Naked Objects architectural pattern is well suited for rapid
|
||||
|
@ -4,7 +4,9 @@ title: Null Object
|
||||
folder: null-object
|
||||
permalink: /patterns/null-object/
|
||||
categories: Behavioral
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** In most object-oriented languages, such as Java or C#, references
|
||||
|
@ -4,7 +4,10 @@ title: Object Pool
|
||||
folder: object-pool
|
||||
permalink: /patterns/object-pool/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Caching
|
||||
---
|
||||
|
||||
**Intent:** When objects are expensive to create and they are needed only for
|
||||
|
@ -4,7 +4,9 @@ title: Poison Pill
|
||||
folder: poison-pill
|
||||
permalink: /patterns/poison-pill/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Poison Pill is known predefined data item that allows to provide
|
||||
|
@ -4,7 +4,10 @@ title: Private Class Data
|
||||
folder: private-class-data
|
||||
permalink: /patterns/private-class-data/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Private Class Data design pattern seeks to reduce exposure of
|
||||
|
@ -3,15 +3,16 @@ layout: pattern
|
||||
title: Producer Consumer
|
||||
folder: producer-consumer
|
||||
permalink: /patterns/producer-consumer/
|
||||
categories: Other
|
||||
tags: Java
|
||||
categories: Concurrency
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- I/O
|
||||
---
|
||||
|
||||
**Intent:** Producer Consumer Design pattern is a classic concurrency or threading pattern which reduces
|
||||
**Intent:** Producer Consumer Design pattern is a classic concurrency pattern which reduces
|
||||
coupling between Producer and Consumer by separating Identification of work with Execution of
|
||||
Work..
|
||||
|
||||
|
||||
Work.
|
||||
|
||||

|
||||
|
||||
@ -19,4 +20,3 @@ tags: Java
|
||||
|
||||
* decouple system by separate work in two process produce and consume.
|
||||
* addresses the issue of different timing require to produce work or consuming work
|
||||
|
||||
|
@ -4,7 +4,9 @@ title: Property
|
||||
folder: property
|
||||
permalink: /patterns/property/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Create hierarchy of objects and new objects using already existing
|
||||
|
@ -7,6 +7,7 @@ categories: Creational
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Specify the kinds of objects to create using a prototypical
|
||||
|
@ -7,7 +7,7 @@ categories: Structural
|
||||
tags:
|
||||
- Java
|
||||
- Gang Of Four
|
||||
- Difficulty-Intermediate
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Also known as:** Surrogate
|
||||
|
@ -7,6 +7,7 @@ categories: Integration
|
||||
tags:
|
||||
- Java
|
||||
- EIP
|
||||
- Camel
|
||||
---
|
||||
|
||||
**Intent:** Broadcast messages from sender to all the interested receivers.
|
||||
|
@ -3,10 +3,11 @@ layout: pattern
|
||||
title: Reactor
|
||||
folder: reactor
|
||||
permalink: /patterns/reactor/
|
||||
categories: Architectural
|
||||
categories: Concurrency
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Expert
|
||||
- I/O
|
||||
---
|
||||
|
||||
**Intent:** The Reactor design pattern handles service requests that are delivered concurrently to an application by one or more clients. The application can register specific handlers for processing which are called by reactor on specific events. Dispatching of event handlers is performed by an initiation dispatcher, which manages the registered event handlers. Demultiplexing of service requests is performed by a synchronous event demultiplexer.
|
||||
|
@ -3,8 +3,11 @@ layout: pattern
|
||||
title: Repository
|
||||
folder: repository
|
||||
permalink: /patterns/repository/
|
||||
categories: Architectural
|
||||
tags: Java
|
||||
categories: Persistence Tier
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
- Spring
|
||||
---
|
||||
|
||||
**Intent:** Repository layer is added between the domain and data mapping
|
||||
|
@ -4,7 +4,10 @@ title: Resource Acquisition Is Initialization
|
||||
folder: resource-acquisition-is-initialization
|
||||
permalink: /patterns/resource-acquisition-is-initialization/
|
||||
categories: Other
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
- Idiom
|
||||
---
|
||||
|
||||
**Intent:** Resource Acquisition Is Initialization pattern can be used to implement exception safe resource management.
|
||||
|
@ -4,7 +4,9 @@ title: Servant
|
||||
folder: servant
|
||||
permalink: /patterns/servant/
|
||||
categories: Structural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Servant is used for providing some behavior to a group of classes.
|
||||
|
@ -4,7 +4,9 @@ title: Service Layer
|
||||
folder: service-layer
|
||||
permalink: /patterns/service-layer/
|
||||
categories: Architectural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Service Layer is an abstraction over domain logic. Typically
|
||||
|
@ -4,7 +4,9 @@ title: Service Locator
|
||||
folder: service-locator
|
||||
permalink: /patterns/service-locator/
|
||||
categories: Structural
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Encapsulate the processes involved in obtaining a service with a
|
||||
|
@ -4,7 +4,9 @@ title: Specification
|
||||
folder: specification
|
||||
permalink: /patterns/specification/
|
||||
categories: Behavioral
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Specification pattern separates the statement of how to match a
|
||||
|
@ -4,7 +4,9 @@ title: Step Builder
|
||||
folder: step-builder
|
||||
permalink: /patterns/step-builder/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** An extension of the Builder pattern that fully guides the user through the creation of the object with no chances of confusion.
|
||||
|
@ -4,7 +4,9 @@ title: Thread Pool
|
||||
folder: thread-pool
|
||||
permalink: /patterns/thread-pool/
|
||||
categories: Concurrency
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** It is often the case that tasks to be executed are short-lived and
|
||||
|
@ -4,7 +4,9 @@ title: Tolerant Reader
|
||||
folder: tolerant-reader
|
||||
permalink: /patterns/tolerant-reader/
|
||||
categories: Integration
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
**Intent:** Tolerant Reader is an integration pattern that helps creating
|
||||
|
@ -4,14 +4,14 @@ title: Twin
|
||||
folder: twin
|
||||
permalink: /patterns/twin/
|
||||
categories: Creational
|
||||
tags: Java
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Intermediate
|
||||
---
|
||||
|
||||
**Intent:** Twin pattern is a design pattern which provides a standard solution to simulate multiple
|
||||
inheritance in java
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
**Applicability:** Use the Twin idiom when
|
||||
@ -21,4 +21,4 @@ inheritance in java
|
||||
|
||||
**Credits:**
|
||||
|
||||
* [Twin – A Design Pattern for Modeling Multiple Inheritance](http://www.ssw.uni-linz.ac.at/Research/Papers/Moe99/Paper.pdf)
|
||||
* [Twin – A Design Pattern for Modeling Multiple Inheritance](http://www.ssw.uni-linz.ac.at/Research/Papers/Moe99/Paper.pdf)
|
||||
|
Loading…
x
Reference in New Issue
Block a user