diff --git a/README.md b/README.md
index 08fcc4b70..4724ea332 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
-# Design pattern samples in Java.
+
+
+# Design pattern samples in Java
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -7,24 +11,19 @@
src="https://scan.coverity.com/projects/5634/badge.svg"/>
-
+
+#### Browse and view all of the patterns on our Website: [iluwatar.github.io/java-design-patterns/](https://iluwatar.github.io/java-design-patterns/)
+
+
+
+# Table of Contents
- Introduction
- - List of Design Patterns
- - Creational Patterns
- - Structural Patterns
- - Behavioral Patterns
- - Concurrency Patterns
- - Presentation Tier Patterns
- - Business Tier Patterns
- - Architectural Patterns
- - Integration Patterns
- - Idioms
- Frequently Asked Questions
- How to contribute
- Versioning
- Credits
- License
-
+
## Introduction
@@ -38,119 +37,6 @@ Reusing design patterns helps to prevent subtle issues that can cause major
problems, and it also improves code readability for coders and architects who
are familiar with the patterns.
-## List of Design Patterns [↑](#top)
-
-### Creational Patterns [↑](#top)
-
-Creational design patterns abstract the instantiation process. They help make a
-system independent of how its objects are created, composed, and represented.
-
-* [Abstract Factory](#abstract-factory)
-* [Builder](#builder)
-* [Factory Method](#factory-method)
-* [Prototype](#prototype)
-* [Property](#property)
-* [Singleton](#singleton)
-* [Step Builder](#step-builder)
-* [Multiton](#multiton)
-* [Object Pool](#object-pool)
-
-### Structural Patterns [↑](#top)
-
-Structural patterns are concerned with how classes and objects are composed to
-form larger structures.
-
-* [Adapter](#adapter)
-* [Bridge](#bridge)
-* [Composite](#composite)
-* [Decorator](#decorator)
-* [Facade](#facade)
-* [Flyweight](#flyweight)
-* [Proxy](#proxy)
-* [Service Locator](#service-locator)
-* [Servant](#servant)
-* [Event Aggregator](#event-aggregator)
-
-### Behavioral Patterns [↑](#top)
-
-Behavioral patterns are concerned with algorithms and the assignment of
-responsibilities between objects.
-
-* [Chain of responsibility](#chain-of-responsibility)
-* [Command](#command)
-* [Interpreter](#interpreter)
-* [Iterator](#iterator)
-* [Mediator](#mediator)
-* [Memento](#memento)
-* [Observer](#observer)
-* [State](#state)
-* [Strategy](#strategy)
-* [Template method](#template-method)
-* [Visitor](#visitor)
-* [Null Object](#null-object)
-* [Intercepting Filter](#intercepting-filter)
-* [Specification](#specification)
-* [Dependency Injection](#dependency-injection)
-
-### Concurrency Patterns [↑](#top)
-
-Concurrency patterns are those types of design patterns that deal with the
-multi-threaded programming paradigm.
-
-* [Double Checked Locking](#double-checked-locking)
-* [Thread Pool](#thread-pool)
-* [Async Method Invocation](#async-method-invocation)
-* [Half-Sync/Half-Async](#half-sync-half-async)
-
-### Presentation Tier Patterns [↑](#top)
-
-Presentation Tier patterns are the top-most level of the application, this is
-concerned with translating tasks and results to something the user can
-understand.
-
-* [Model-View-Controller](#model-view-controller)
-* [Model-View-Presenter](#model-view-presenter)
-* [Flux](#flux)
-* [Front Controller](#front-controller)
-
-### Business Tier Patterns [↑](#top)
-
-* [Business Delegate](#business-delegate)
-
-### Architectural Patterns [↑](#top)
-
-An architectural pattern is a general, reusable solution to a commonly occurring
-problem in software architecture within a given context.
-
-* [Data Access Object](#dao)
-* [Service Layer](#service-layer)
-* [Naked Objects](#naked-objects)
-* [Repository](#repository)
-
-### Integration Patterns [↑](#top)
-
-Integration patterns are concerned with how software applications communicate
-and exchange data.
-
-* [Tolerant Reader](#tolerant-reader)
-
-### Idioms [↑](#top)
-
-A programming idiom is a means of expressing a recurring construct in one or
-more programming languages. Generally speaking, a programming idiom is an
-expression of a simple task, algorithm, or data structure that is not a built-in
-feature in the programming language being used, or, conversely, the use of an
-unusual or notable feature that is built into a programming language. What
-distinguishes idioms from patterns is generally the size, the idioms tend to be
-something small while the patterns are larger.
-
-* [Execute Around](#execute-around)
-* [Poison Pill](#poison-pill)
-* [Callback](#callback)
-* [Lazy Loading](#lazy-loading)
-* [Double Dispatch](#double-dispatch)
-* [Resource Acquisition Is Initialization](#resource-acquisition-is-initialization)
-* [Private Class Data](#private-class-data)
# Frequently asked questions [↑](#top)
@@ -225,16 +111,16 @@ Flyweight.
* src (the source code of the pattern)
* index.md (the description of the pattern)
* pom.xml (the maven pom.xml)
-3. Implement the code changes in your fork. Remember to add sufficient comments
+4. Implement the code changes in your fork. Remember to add sufficient comments
documenting the implementation. Reference the issue id e.g. #52 in your
commit messages.
-4. Format the code according to [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)
+5. Format the code according to [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)
* [Eclipse configuration](https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml)
* [IntelliJ configuration](https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml)
-5. Create a simple class diagram from your example code and put it inside of the etc folder.
-6. Add description of the pattern in index.md and link to the class diagram.
+6. Create a simple class diagram from your example code and put it inside of the etc folder.
+7. Add description of the pattern in index.md and link to the class diagram.
(Attention, all internal links must be relative to the pattern subdirectory, else the links dont link properly on the website)
-7. Create a pull request.
+8. Create a pull request.
**Structure of the index.md file**
diff --git a/abstract-factory/index.md b/abstract-factory/index.md
index 412e16009..cb229f4ab 100644
--- a/abstract-factory/index.md
+++ b/abstract-factory/index.md
@@ -3,10 +3,8 @@ layout: pattern
title: Abstract Factory
folder: abstract-factory
permalink: /patterns/abstract-factory/
-categories:
- - pattern_cat
- - creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Provide an interface for creating families of related or dependent
diff --git a/adapter/index.md b/adapter/index.md
index ee94ef47c..23aaeadcc 100644
--- a/adapter/index.md
+++ b/adapter/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Adapter
folder: adapter
permalink: /patterns/adapter/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Convert the interface of a class into another interface the clients
diff --git a/async-method-invocation/index.md b/async-method-invocation/index.md
index fdc30606e..dfcee0208 100644
--- a/async-method-invocation/index.md
+++ b/async-method-invocation/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Async Method Invocation
folder: async-method-invocation
permalink: /patterns/async-method-invocation/
-categories: concurrency
-tags: pattern_tag
+categories: Concurrency
+tags: Java
---
**Intent:** Asynchronous method invocation is pattern where the calling thread
diff --git a/bridge/index.md b/bridge/index.md
index 9983dab40..8c05f14cf 100644
--- a/bridge/index.md
+++ b/bridge/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Bridge
folder: bridge
permalink: /patterns/bridge/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Decouple an abstraction from its implementation so that the two can
diff --git a/builder/index.md b/builder/index.md
index 78fb61fea..aa5c86201 100644
--- a/builder/index.md
+++ b/builder/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Builder
folder: builder
permalink: /patterns/builder/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Separate the construction of a complex object from its
diff --git a/business-delegate/index.md b/business-delegate/index.md
index af3c2108d..a55febaf9 100644
--- a/business-delegate/index.md
+++ b/business-delegate/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Business Delegate
folder: business-delegate
permalink: /patterns/business-delegate/
-categories: business_tier
-tags: pattern_tag
+categories: Business Tier
+tags: Java
---
**Intent:** The Business Delegate pattern adds an abstraction layer between
diff --git a/callback/index.md b/callback/index.md
index 1d65e1514..b724f1edc 100644
--- a/callback/index.md
+++ b/callback/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Callback
folder: callback
permalink: /patterns/callback/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Callback is a piece of executable code that is passed as an
diff --git a/chain-of-responsibility/index.md b/chain-of-responsibility/index.md
index 0dd250cbd..cf56fe3c6 100644
--- a/chain-of-responsibility/index.md
+++ b/chain-of-responsibility/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Chain of responsibility
folder: chain-of-responsibility
permalink: /patterns/chain-of-responsibility/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Avoid coupling the sender of a request to its receiver by giving
diff --git a/command/index.md b/command/index.md
index df512d023..23582406e 100644
--- a/command/index.md
+++ b/command/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Command
folder: command
permalink: /patterns/command/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Encapsulate a request as an object, thereby letting you
diff --git a/composite/index.md b/composite/index.md
index f50c32dd3..374e1d5aa 100644
--- a/composite/index.md
+++ b/composite/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Composite
folder: composite
permalink: /patterns/composite/
-categories: pattern_cat
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Compose objects into tree structures to represent part-whole
diff --git a/dao/index.md b/dao/index.md
index de481b3a5..7fd936c12 100644
--- a/dao/index.md
+++ b/dao/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Data Access Object
folder: dao
permalink: /patterns/dao/
-categories: architectural
-tags: pattern_tag
+categories: Architectural
+tags: Java
---
**Intent:** Object provides an abstract interface to some type of database or
diff --git a/decorator/index.md b/decorator/index.md
index 0570935ca..02f129258 100644
--- a/decorator/index.md
+++ b/decorator/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Decorator
folder: decorator
permalink: /patterns/decorator/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Attach additional responsibilities to an object dynamically.
diff --git a/dependency-injection/index.md b/dependency-injection/index.md
index 884fdb502..f6ead97a7 100644
--- a/dependency-injection/index.md
+++ b/dependency-injection/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Dependency Injection
folder: dependency-injection
permalink: /patterns/dependency-injection/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Dependency Injection is a software design pattern in which one or
diff --git a/double-checked-locking/index.md b/double-checked-locking/index.md
index 371048b12..b1b0108ec 100644
--- a/double-checked-locking/index.md
+++ b/double-checked-locking/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Double Checked Locking
folder: double-checked-locking
permalink: /patterns/double-checked-locking/
-categories: concurrency
-tags: pattern_tag
+categories: Concurrency
+tags: Java
---
**Intent:** Reduce the overhead of acquiring a lock by first testing the
diff --git a/double-dispatch/index.md b/double-dispatch/index.md
index 842913738..6847b7a41 100644
--- a/double-dispatch/index.md
+++ b/double-dispatch/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Double Dispatch
folder: double-dispatch
permalink: /patterns/double-dispatch/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Double Dispatch pattern is a way to create maintainable dynamic
diff --git a/event-aggregator/index.md b/event-aggregator/index.md
index d27d3423e..fd42e9811 100644
--- a/event-aggregator/index.md
+++ b/event-aggregator/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Event Aggregator
folder: event-aggregator
permalink: /patterns/event-aggregator/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** A system with lots of objects can lead to complexities when a
diff --git a/execute-around/index.md b/execute-around/index.md
index ec4c040bf..56ece4ac4 100644
--- a/execute-around/index.md
+++ b/execute-around/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Execute Around
folder: execute-around
permalink: /patterns/execute-around/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Execute Around idiom frees the user from certain actions that
diff --git a/facade/index.md b/facade/index.md
index a2aba225f..0f6e2fbb1 100644
--- a/facade/index.md
+++ b/facade/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Facade
folder: facade
permalink: /patterns/facade/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Provide a unified interface to a set of interfaces in a subsystem.
diff --git a/factory-method/index.md b/factory-method/index.md
index 11ad77dda..fa30a4349 100644
--- a/factory-method/index.md
+++ b/factory-method/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Factory Method
folder: factory-method
permalink: /patterns/factory-method/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Define an interface for creating an object, but let subclasses
diff --git a/flux/index.md b/flux/index.md
index 970ef051c..c96b2b56a 100644
--- a/flux/index.md
+++ b/flux/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Flux
folder: flux
permalink: /patterns/flux/
-categories: presentation_tier
-tags: pattern_tag
+categories: Presentation Tier
+tags: Java
---
**Intent:** Flux eschews MVC in favor of a unidirectional data flow. When a
diff --git a/flyweight/index.md b/flyweight/index.md
index 2a804e769..699c1ed54 100644
--- a/flyweight/index.md
+++ b/flyweight/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Flyweight
folder: flyweight
permalink: /patterns/flyweight/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Use sharing to support large numbers of fine-grained objects
diff --git a/front-controller/index.md b/front-controller/index.md
index 9c73ddb95..dd83bc396 100644
--- a/front-controller/index.md
+++ b/front-controller/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Front Controller
folder: front-controller
permalink: /patterns/front-controller/
-categories: presentation_tier
-tags: pattern_tag
+categories: Presentation Tier
+tags: Java
---
**Intent:** Introduce a common handler for all requests for a web site. This
diff --git a/half-sync-half-async/index.md b/half-sync-half-async/index.md
index 025ba605f..b21c97bc4 100644
--- a/half-sync-half-async/index.md
+++ b/half-sync-half-async/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Half-Sync/Half-Async
folder: half-sync-half-async
permalink: /patterns/half-sync-half-async/
-categories: concurrency
-tags: pattern_tag
+categories: Concurrency
+tags: Java
---
**Intent:** The Half-Sync/Half-Async pattern decouples synchronous I/O from
diff --git a/intercepting-filter/index.md b/intercepting-filter/index.md
index b8fa2a7f6..66cf04b62 100644
--- a/intercepting-filter/index.md
+++ b/intercepting-filter/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Intercepting Filter
folder: intercepting-filter
permalink: /patterns/intercepting-filter/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Provide pluggable filters to conduct necessary pre-processing and
diff --git a/interpreter/index.md b/interpreter/index.md
index d1ca73955..40030917a 100644
--- a/interpreter/index.md
+++ b/interpreter/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Interpreter
folder: interpreter
permalink: /patterns/interpreter/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Given a language, define a representation for its grammar along
diff --git a/introduction/index.md b/introduction/index.md
deleted file mode 100644
index 14df55cee..000000000
--- a/introduction/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: pattern
-title: Introduction
-folder: introduction
-permalink: /patterns/introduction/
-permalink: /patterns/introduction/
-categories: pattern_cat
-tags: pattern_tag
----
-
-
-Design patterns are formalized best practices that the programmer can use to
-solve common problems when designing an application or system.
-
-Design patterns can speed up the development process by providing tested, proven
-development paradigms.
-
-Reusing design patterns helps to prevent subtle issues that can cause major
-problems, and it also improves code readability for coders and architects who
-are familiar with the patterns.
diff --git a/iterator/index.md b/iterator/index.md
index 8b185ff83..63bdaf516 100644
--- a/iterator/index.md
+++ b/iterator/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Iterator
folder: iterator
permalink: /patterns/iterator/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Provide a way to access the elements of an aggregate object
diff --git a/layers/index.md b/layers/index.md
index bec7a5f14..1d12d3b4e 100644
--- a/layers/index.md
+++ b/layers/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Layers
folder: layers
permalink: /patterns/layers/
-categories: architectural
-tags: pattern_tag
+categories: Architectural
+tags: Java
---
**Intent:** Layers is an architectural style where software responsibilities are
diff --git a/lazy-loading/index.md b/lazy-loading/index.md
index c1ecc1cf5..700892af0 100644
--- a/lazy-loading/index.md
+++ b/lazy-loading/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Lazy Loading
folder: lazy-loading
permalink: /patterns/lazy-loading/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Lazy loading is a design pattern commonly used to defer
diff --git a/mediator/index.md b/mediator/index.md
index 735024298..e67218a53 100644
--- a/mediator/index.md
+++ b/mediator/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Mediator
folder: mediator
permalink: /patterns/mediator/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Define an object that encapsulates how a set of objects interact.
diff --git a/memento/index.md b/memento/index.md
index 99dd9fad4..b91e34739 100644
--- a/memento/index.md
+++ b/memento/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Memento
folder: memento
permalink: /patterns/memento/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Without violating encapsulation, capture and externalize an
diff --git a/model-view-controller/index.md b/model-view-controller/index.md
index f6390225e..5a12bc656 100644
--- a/model-view-controller/index.md
+++ b/model-view-controller/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Model-View-Controller
folder: model-view-controller
permalink: /patterns/model-view-controller/
-categories: presentation_tier
-tags: pattern_tag
+categories: Presentation Tier
+tags: Java
---
**Intent:** Separate the user interface into three interconnected components:
diff --git a/model-view-presenter/index.md b/model-view-presenter/index.md
index d1ba373e3..6b0994077 100644
--- a/model-view-presenter/index.md
+++ b/model-view-presenter/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Model-View-Presenter
folder: model-view-presenter
permalink: /patterns/model-view-presenter/
-categories: presentation_tier
-tags: pattern_tag
+categories: Presentation Tier
+tags: Java
---
**Intent:** Apply a "Separation of Concerns" principle in a way that allows
diff --git a/multiton/index.md b/multiton/index.md
index 47b9582b8..617bedb6a 100644
--- a/multiton/index.md
+++ b/multiton/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Multiton
folder: multiton
permalink: /patterns/multiton/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Ensure a class only has limited number of instances, and provide a
diff --git a/naked-objects/index.md b/naked-objects/index.md
index 45f5bec86..cef2a9ede 100644
--- a/naked-objects/index.md
+++ b/naked-objects/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Naked Objects
folder: naked-objects
permalink: /patterns/naked-objects/
-categories: architectural
-tags: pattern_tag
+categories: Architectural
+tags: Java
---
**Intent:** The Naked Objects architectural pattern is well suited for rapid
diff --git a/null-object/index.md b/null-object/index.md
index c7e89272b..5127e8565 100644
--- a/null-object/index.md
+++ b/null-object/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Null Object
folder: null-object
permalink: /patterns/null-object/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** In most object-oriented languages, such as Java or C#, references
diff --git a/object-pool/index.md b/object-pool/index.md
index ac08006f7..276d9a1f6 100644
--- a/object-pool/index.md
+++ b/object-pool/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Object Pool
folder: object-pool
permalink: /patterns/object-pool/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** When objects are expensive to create and they are needed only for
diff --git a/observer/index.md b/observer/index.md
index 10036336c..d5b380a30 100644
--- a/observer/index.md
+++ b/observer/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Observer
folder: observer
permalink: /patterns/observer/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Define a one-to-many dependency between objects so that when one
diff --git a/poison-pill/index.md b/poison-pill/index.md
index 7d3b02bf4..cd60e1a68 100644
--- a/poison-pill/index.md
+++ b/poison-pill/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Poison Pill
folder: poison-pill
permalink: /patterns/poison-pill/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Poison Pill is known predefined data item that allows to provide
diff --git a/private-class-data/index.md b/private-class-data/index.md
index b90ae654d..83c95d308 100644
--- a/private-class-data/index.md
+++ b/private-class-data/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Private Class Data
folder: private-class-data
permalink: /patterns/private-class-data/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Private Class Data design pattern seeks to reduce exposure of
diff --git a/property/index.md b/property/index.md
index 802940f84..1c5b28db6 100644
--- a/property/index.md
+++ b/property/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Property
folder: property
permalink: /patterns/property/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Create hierarchy of objects and new objects using already existing
diff --git a/prototype/index.md b/prototype/index.md
index 7db6e8513..cab97f7dc 100644
--- a/prototype/index.md
+++ b/prototype/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Prototype
folder: prototype
permalink: /patterns/prototype/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Specify the kinds of objects to create using a prototypical
diff --git a/proxy/index.md b/proxy/index.md
index 4c29877f6..96ea40714 100644
--- a/proxy/index.md
+++ b/proxy/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Proxy
folder: proxy
permalink: /patterns/proxy/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Provide a surrogate or placeholder for another object to control
diff --git a/repository/index.md b/repository/index.md
index 3421a2075..a65044d29 100644
--- a/repository/index.md
+++ b/repository/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Repository
folder: repository
permalink: /patterns/repository/
-categories: architectural
-tags: pattern_tag
+categories: Architectural
+tags: Java
---
**Intent:** Repository layer is added between the domain and data mapping
diff --git a/resource-acquisition-is-initialization/index.md b/resource-acquisition-is-initialization/index.md
index 7b283ab8c..c3aa6c045 100644
--- a/resource-acquisition-is-initialization/index.md
+++ b/resource-acquisition-is-initialization/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Resource Acquisition Is Initialization
folder: resource-acquisition-is-initialization
permalink: /patterns/resource-acquisition-is-initialization/
-categories: pattern_cat
-tags: pattern_tag
+categories: Other
+tags: Java
---
**Intent:** Resource Acquisition Is Initialization pattern can be used to implement exception safe resource management.
diff --git a/servant/index.md b/servant/index.md
index a4205b9c0..38a8e2c60 100644
--- a/servant/index.md
+++ b/servant/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Servant
folder: servant
permalink: /patterns/servant/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Servant is used for providing some behavior to a group of classes.
diff --git a/service-layer/index.md b/service-layer/index.md
index d041c71ab..22afc1669 100644
--- a/service-layer/index.md
+++ b/service-layer/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Service Layer
folder: service-layer
permalink: /patterns/service-layer/
-categories: architectural
-tags: pattern_tag
+categories: Architectural
+tags: Java
---
**Intent:** Service Layer is an abstraction over domain logic. Typically
diff --git a/service-locator/index.md b/service-locator/index.md
index 8bb12c01b..8c2aa6417 100644
--- a/service-locator/index.md
+++ b/service-locator/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Service Locator
folder: service-locator
permalink: /patterns/service-locator/
-categories: structural
-tags: pattern_tag
+categories: Structural
+tags: Java
---
**Intent:** Encapsulate the processes involved in obtaining a service with a
diff --git a/singleton/index.md b/singleton/index.md
index b7aed47bb..7a280bdfa 100644
--- a/singleton/index.md
+++ b/singleton/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Singleton
folder: singleton
permalink: /patterns/singleton/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** Ensure a class only has one instance, and provide a global point of
diff --git a/specification/index.md b/specification/index.md
index 81ed15e11..2609f50e5 100644
--- a/specification/index.md
+++ b/specification/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Specification
folder: specification
permalink: /patterns/specification/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Specification pattern separates the statement of how to match a
diff --git a/state/index.md b/state/index.md
index b2e4cc2c7..1b1e4717f 100644
--- a/state/index.md
+++ b/state/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: State
folder: state
permalink: /patterns/state/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Allow an object to alter its behavior when its internal state
diff --git a/step-builder/index.md b/step-builder/index.md
index f3a7f2413..636504598 100644
--- a/step-builder/index.md
+++ b/step-builder/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Step Builder
folder: step-builder
permalink: /patterns/step-builder/
-categories: creational
-tags: pattern_tag
+categories: Creational
+tags: Java
---
**Intent:** An extension of the Builder pattern that fully guides the user through the creation of the object with no chances of confusion.
diff --git a/strategy/index.md b/strategy/index.md
index 0f3dcd144..1d3250517 100644
--- a/strategy/index.md
+++ b/strategy/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Strategy
folder: strategy
permalink: /patterns/strategy/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Define a family of algorithms, encapsulate each one, and make them
diff --git a/template-method/index.md b/template-method/index.md
index e0d1ceb14..f647d2cd5 100644
--- a/template-method/index.md
+++ b/template-method/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Template method
folder: template-method
permalink: /patterns/template-method/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Define the skeleton of an algorithm in an operation, deferring some
diff --git a/thread-pool/index.md b/thread-pool/index.md
index 092c8b8a8..d9f00f428 100644
--- a/thread-pool/index.md
+++ b/thread-pool/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Thread Pool
folder: thread-pool
permalink: /patterns/thread-pool/
-categories: concurrency
-tags: pattern_tag
+categories: Concurrency
+tags: Java
---
**Intent:** It is often the case that tasks to be executed are short-lived and
diff --git a/tolerant-reader/index.md b/tolerant-reader/index.md
index 75fa6ec70..7e0ef4f32 100644
--- a/tolerant-reader/index.md
+++ b/tolerant-reader/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Tolerant Reader
folder: tolerant-reader
permalink: /patterns/tolerant-reader/
-categories: integration
-tags: pattern_tag
+categories: Integration
+tags: Java
---
**Intent:** Tolerant Reader is an integration pattern that helps creating
diff --git a/visitor/index.md b/visitor/index.md
index f9f5c87f8..eeb11a5e5 100644
--- a/visitor/index.md
+++ b/visitor/index.md
@@ -3,8 +3,8 @@ layout: pattern
title: Visitor
folder: visitor
permalink: /patterns/visitor/
-categories: behavioral
-tags: pattern_tag
+categories: Behavioral
+tags: Java
---
**Intent:** Represent an operation to be performed on the elements of an object