Skip to content

Commit f14bb28

Browse files
committed
Merge pull request iluwatar#200 from npathai/master
Provided better navigation in README
2 parents a95bd31 + 5d8ff14 commit f14bb28

File tree

1 file changed

+35
-18
lines changed

1 file changed

+35
-18
lines changed

README.md

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,30 @@
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 name="top"/>
9+
- <a href="#introduction">Introduction</a>
10+
- <a href="#list-of-design-patterns">List of Design Patterns</a>
11+
- <a href="#creational-patterns">Creational Patterns</a>
12+
- <a href="#structural-patterns">Structural Patterns</a>
13+
- <a href="#behavioral-patterns">Behavioral Patterns</a>
14+
- <a href="#concurrency-patterns">Concurrency Patterns</a>
15+
- <a href="#presentation-tier-patterns">Presentation Tier Patterns</a>
16+
- <a href="#business-tier-patterns">Business Tier Patterns</a>
17+
- <a href="#architectural-patterns">Architectural Patterns</a>
18+
- <a href="#integration-patterns">Integration Patterns</a>
19+
- <a href="#idioms">Idioms</a>
20+
- <a href="#faq">Frequently Asked Questions</a>
21+
- <a href="#how-to-contribute">How to contribute</a>
22+
- <a href="#versioning">Versioning</a>
23+
- <a href="#credits">Credits</a>
24+
- <a href="#license">License</a>
25+
26+
27+
## <a name="introduction">Introduction</a>
1128

1229
Design patterns are formalized best practices that the programmer can use to
1330
solve common problems when designing an application or system.
@@ -19,9 +36,9 @@ Reusing design patterns helps to prevent subtle issues that can cause major
1936
problems, and it also improves code readability for coders and architects who
2037
are familiar with the patterns.
2138

22-
## <a name="list-of-design-patterns">List of Design Patterns</a>
39+
## <a name="list-of-design-patterns">List of Design Patterns</a> [&#8593;](#top)
2340

24-
### Creational Patterns
41+
### <a name="creational-patterns">Creational Patterns</a> [&#8593;](#top)
2542

2643
Creational design patterns abstract the instantiation process. They help make a
2744
system independent of how its objects are created, composed, and represented.
@@ -36,7 +53,7 @@ system independent of how its objects are created, composed, and represented.
3653
* [Multiton](#multiton)
3754
* [Object Pool](#object-pool)
3855

39-
### Structural Patterns
56+
### <a name="structural-patterns">Structural Patterns</a> [&#8593;](#top)
4057

4158
Structural patterns are concerned with how classes and objects are composed to
4259
form larger structures.
@@ -52,7 +69,7 @@ form larger structures.
5269
* [Servant](#servant)
5370
* [Event Aggregator](#event-aggregator)
5471

55-
### Behavioral Patterns
72+
### <a name="behavioral-patterns">Behavioral Patterns</a> [&#8593;](#top)
5673

5774
Behavioral patterns are concerned with algorithms and the assignment of
5875
responsibilities between objects.
@@ -73,7 +90,7 @@ responsibilities between objects.
7390
* [Specification](#specification)
7491
* [Dependency Injection](#dependency-injection)
7592

76-
### Concurrency Patterns
93+
### <a name="concurrency-patterns">Concurrency Patterns</a> [&#8593;](#top)
7794

7895
Concurrency patterns are those types of design patterns that deal with the
7996
multi-threaded programming paradigm.
@@ -83,7 +100,7 @@ multi-threaded programming paradigm.
83100
* [Async Method Invocation](#async-method-invocation)
84101
* [Half-Sync/Half-Async](#half-sync-half-async)
85102

86-
### Presentation Tier Patterns
103+
### <a name="presentation-tier-patterns">Presentation Tier Patterns</a> [&#8593;](#top)
87104

88105
Presentation Tier patterns are the top-most level of the application, this is
89106
concerned with translating tasks and results to something the user can
@@ -94,11 +111,11 @@ understand.
94111
* [Flux](#flux)
95112
* [Front Controller](#front-controller)
96113

97-
### Business Tier Patterns
114+
### <a name="business-tier-patterns">Business Tier Patterns</a> [&#8593;](#top)
98115

99116
* [Business Delegate](#business-delegate)
100117

101-
### Architectural Patterns
118+
### <a name="architectural-patterns">Architectural Patterns</a> [&#8593;](#top)
102119

103120
An architectural pattern is a general, reusable solution to a commonly occurring
104121
problem in software architecture within a given context.
@@ -108,14 +125,14 @@ problem in software architecture within a given context.
108125
* [Naked Objects](#naked-objects)
109126
* [Repository](#repository)
110127

111-
### Integration Patterns
128+
### <a name="integration-patterns">Integration Patterns</a> [&#8593;](#top)
112129

113130
Integration patterns are concerned with how software applications communicate
114131
and exchange data.
115132

116133
* [Tolerant Reader](#tolerant-reader)
117134

118-
### Idioms
135+
### <a name="idioms">Idioms</a> [&#8593;](#top)
119136

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

894-
# Frequently asked questions
911+
# <a name="faq">Frequently asked questions</a> [&#8593;](#top)
895912

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

@@ -951,7 +968,7 @@ Flyweight.
951968

952969

953970

954-
# How to contribute
971+
# <a name="how-to-contribute">How to contribute</a> [&#8593;](#top)
955972

956973
**To work on a new pattern** you need to do the following steps:
957974

@@ -989,15 +1006,15 @@ Flyweight.
9891006
should be added to the corresponding section of the `README.md`.
9901007

9911008

992-
# Versioning
1009+
# <a name="versioning">Versioning</a> [&#8593;](#top)
9931010

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

9991016

1000-
# Credits
1017+
# <a name="credits">Credits</a> [&#8593;](#top)
10011018

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

10221039

1023-
# License
1040+
# <a name="license">License</a> [&#8593;](#top)
10241041

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

0 commit comments

Comments
 (0)