Skip to content

Commit 41ab867

Browse files
committed
Updated README for better navigational summary
Links to various important sections of README is provided at the top so that it becomes easily navigable.
1 parent a95bd31 commit 41ab867

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

README.md

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,31 @@
11
# Design pattern samples in Java.
22

3-
## Build status, coverage and static analysis:
4-
53
![Build status](https://travis-ci.org/iluwatar/java-design-patterns.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/iluwatar/java-design-patterns/badge.svg?branch=master)](https://coveralls.io/r/iluwatar/java-design-patterns?branch=master) <a href="https://scan.coverity.com/projects/5634">
64
<img alt="Coverity Scan Build Status"
75
src="https://scan.coverity.com/projects/5634/badge.svg"/>
86
</a>
97

10-
## Introduction
8+
- <a href="#introduction">Introduction</a>
9+
- <a href="#list-of-design-patterns">List of Design Patterns</a>
10+
- <a href="#creational-patterns">Creational Patterns</a>
11+
- <a href="#structural-patterns">Structural Patterns</a>
12+
- <a href="#behavioral-patterns">Behavioral Patterns</a>
13+
- <a href="#concurrency-patterns">Concurreny Patterns</a>
14+
- <a href="#presentation-tier-patterns">Presentation Tier Patterns</a>
15+
- <a href="#business-tier-patterns">Business Tier Patterns</a>
16+
- <a href="#architectural-patterns">Architectural Patterns</a>
17+
- <a href="#integration-patterns">Integration Patterns</a>
18+
- <a href="#idioms">Idioms</a>
19+
- <a href="#faq">Frequently Asked Questions</a>
20+
- <a href="#how-to-contribute">How to contribute</a>
21+
- Contributing a new pattern
22+
- Working on non-pattern issue
23+
- <a href="#versioning">Versioning</a>
24+
- <a href="#credits">Credits</a>
25+
- <a href="#license">License</a>
26+
27+
28+
## <a name="introduction">Introduction</a>
1129

1230
Design patterns are formalized best practices that the programmer can use to
1331
solve common problems when designing an application or system.
@@ -21,7 +39,7 @@ are familiar with the patterns.
2139

2240
## <a name="list-of-design-patterns">List of Design Patterns</a>
2341

24-
### Creational Patterns
42+
### <a name="creational-patterns">Creational Patterns</a>
2543

2644
Creational design patterns abstract the instantiation process. They help make a
2745
system independent of how its objects are created, composed, and represented.
@@ -36,7 +54,7 @@ system independent of how its objects are created, composed, and represented.
3654
* [Multiton](#multiton)
3755
* [Object Pool](#object-pool)
3856

39-
### Structural Patterns
57+
### <a name="structural-patterns">Structural Patterns</a>
4058

4159
Structural patterns are concerned with how classes and objects are composed to
4260
form larger structures.
@@ -52,7 +70,7 @@ form larger structures.
5270
* [Servant](#servant)
5371
* [Event Aggregator](#event-aggregator)
5472

55-
### Behavioral Patterns
73+
### <a name="behavioral-patterns">Behavioral Patterns</a>
5674

5775
Behavioral patterns are concerned with algorithms and the assignment of
5876
responsibilities between objects.
@@ -73,7 +91,7 @@ responsibilities between objects.
7391
* [Specification](#specification)
7492
* [Dependency Injection](#dependency-injection)
7593

76-
### Concurrency Patterns
94+
### <a name="concurrency-patterns">Concurrency Patterns</a>
7795

7896
Concurrency patterns are those types of design patterns that deal with the
7997
multi-threaded programming paradigm.
@@ -83,7 +101,7 @@ multi-threaded programming paradigm.
83101
* [Async Method Invocation](#async-method-invocation)
84102
* [Half-Sync/Half-Async](#half-sync-half-async)
85103

86-
### Presentation Tier Patterns
104+
### <a name="presentation-tier-patterns">Presentation Tier Patterns</a>
87105

88106
Presentation Tier patterns are the top-most level of the application, this is
89107
concerned with translating tasks and results to something the user can
@@ -94,11 +112,11 @@ understand.
94112
* [Flux](#flux)
95113
* [Front Controller](#front-controller)
96114

97-
### Business Tier Patterns
115+
### <a name="business-tier-patterns">Business Tier Patterns</a>
98116

99117
* [Business Delegate](#business-delegate)
100118

101-
### Architectural Patterns
119+
### <a name="architectural-patterns">Architectural Patterns</a>
102120

103121
An architectural pattern is a general, reusable solution to a commonly occurring
104122
problem in software architecture within a given context.
@@ -108,14 +126,14 @@ problem in software architecture within a given context.
108126
* [Naked Objects](#naked-objects)
109127
* [Repository](#repository)
110128

111-
### Integration Patterns
129+
### <a name="integration-patterns">Integration Patterns</a>
112130

113131
Integration patterns are concerned with how software applications communicate
114132
and exchange data.
115133

116134
* [Tolerant Reader](#tolerant-reader)
117135

118-
### Idioms
136+
### <a name="idioms">Idioms</a>
119137

120138
A programming idiom is a means of expressing a recurring construct in one or
121139
more programming languages. Generally speaking, a programming idiom is an
@@ -891,7 +909,7 @@ degrading execution efficiency.
891909
* [Real Time CORBA](http://www.omg.org/news/meetings/workshops/presentations/realtime2001/4-3_Pyarali_thread-pool.pdf)
892910
* [Android AsyncTask framework](http://developer.android.com/reference/android/os/AsyncTask.html)
893911

894-
# Frequently asked questions
912+
# <a name="faq">Frequently asked questions</a>
895913

896914
**<a id="Q1">Q: What is the difference between State and Strategy patterns?</a>**
897915

@@ -951,7 +969,7 @@ Flyweight.
951969

952970

953971

954-
# How to contribute
972+
# <a name="how-to-contribute">How to contribute</a>
955973

956974
**To work on a new pattern** you need to do the following steps:
957975

@@ -989,15 +1007,15 @@ Flyweight.
9891007
should be added to the corresponding section of the `README.md`.
9901008

9911009

992-
# Versioning
1010+
# <a name="versioning">Versioning</a>
9931011

9941012
Java-design-patterns project uses [semantic versioning](http://semver.org/)
9951013
scheme. However, version numbers in this project do not signify binary releases
9961014
(since we don't make any) but rather milestones achieved on the roadmap. In
9971015
other words, version numbers are used only for project planning sake.
9981016

9991017

1000-
# Credits
1018+
# <a name="credits">Credits</a>
10011019

10021020
* [Design Patterns: Elements of Reusable Object-Oriented Software](http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
10031021
* [Effective Java (2nd Edition)](http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683)
@@ -1020,6 +1038,6 @@ other words, version numbers are used only for project planning sake.
10201038
* [Marco Castigliego - Step Builder](http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html)
10211039

10221040

1023-
# License
1041+
# <a name="license">License</a>
10241042

10251043
This project is licensed under the terms of the MIT license.

0 commit comments

Comments
 (0)