Merge branch 'master' into message-channel

This commit is contained in:
Ilkka Seppala 2015-09-02 21:52:18 +03:00
commit ed820816ef
72 changed files with 328 additions and 165 deletions

106
README.md
View File

@ -6,26 +6,23 @@
[![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
![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">
[![Build status](https://travis-ci.org/iluwatar/java-design-patterns.svg?branch=master)](https://travis-ci.org/iluwatar/java-design-patterns) [![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">
<img alt="Coverity Scan Build Status"
src="https://scan.coverity.com/projects/5634/badge.svg"/>
</a>
#### Browse and view all of the patterns on our Website: [iluwatar.github.io/java-design-patterns/](https://iluwatar.github.io/java-design-patterns/)
<a name="top"/>
# <a name="toc">Table of Contents</a>
- <a href="#introduction">Introduction</a>
- <a href="#contribute">How to contribute</a>
- <a href="#faq">Frequently Asked Questions</a>
- <a href="#how-to-contribute">How to contribute</a>
- <a href="#versioning">Versioning</a>
- <a href="#credits">Credits</a>
- <a href="#license">License</a>
## <a name="introduction">Introduction</a>
# <a name="introduction">Introduction</a> [&#8593;](#top)
Design patterns are formalized best practices that the programmer can use to
solve common problems when designing an application or system.
@ -38,6 +35,11 @@ problems, and it also improves code readability for coders and architects who
are familiar with the patterns.
# <a name="contribute">How to contribute</a> [&#8593;](#top)
If you are willing to contribute to the project you will find the relevant information in our [developer wiki](https://github.com/iluwatar/java-design-patterns/wiki).
# <a name="faq">Frequently asked questions</a> [&#8593;](#top)
**<a id="Q1">Q: What is the difference between State and Strategy patterns?</a>**
@ -97,98 +99,6 @@ blocked waiting for available object from the pool. This is not the case with
Flyweight.
# <a name="how-to-contribute">How to contribute</a> [&#8593;](#top)
**To work on a new pattern** you need to do the following steps:
1. If there is no issue for the new pattern yet, raise new issue. Comment on
the issue that you are working on it so that others don't start work on the
same thing.
2. Fork the repository.
3. Create a new folder for the pattern. The rough structure of the new folder would be as follows:
* etc (every resource related to the pattern, like diagrams)
* src (the source code of the pattern)
* index.md (the description of the pattern)
* pom.xml (the maven pom.xml)
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.
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)
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)
8. Create a pull request.
**Structure of the index.md file**
```markdown
--- # this is so called 'Yaml Front Matter', read up on it here: http://jekyllrb.com/docs/frontmatter/
layout: pattern # layout must allways be pattern
title: Best Pattern Ever # the properly formatted title
folder: best-pattern-ever # the folder name in which this pattern lies
permalink: /patterns/best-pattern-ever/ # the permalink to the pattern, to keep this uniform please stick to /patterns/FOLDER/
# both categories and tags are Yaml Lists
# you can either just pick one or write a list with '-'s
# usable categories and tags are listed here: https://github.com/iluwatar/java-design-patterns/blob/gh-pages/_config.yml
categories: creational # categories of the pattern
tags: # tags of the pattern
- best
- ever
- awesome
---
**Intent:** Makes your code awesome
![alt text](./etc/best_pattern.png "Best Pattern Ever")
**Applicability:** Use the Best Pattern Ever pattern when
* you want to be the best
* you need to ...
**Real world examples:**
* [Nowhere](http://no.where.com)
```
**To add a new category or tag** you need to edit the _config.yml file of the gh-pages branch.
In there you should find 2 yaml lists with the respective names 'category-list' and 'tag-list'
**To work on one of the non-pattern issues** you need to do the following steps:
1. Check that the issue has "help wanted" badge
2. Comment on the issue that you are working on it
3. Fork the repository.
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.
5. Create a pull request.
**For creating/editing UML diagrams** you need [ObjectAid UML Explorer for Eclipse](http://www.objectaid.com/home).
**For inspiration** check out the following sources:
* there is a good list of design patterns at [Wikipedia](http://en.wikipedia.org/wiki/Software_design_pattern)
* Martin Fowler's [Catalog of Patterns of Enterprise Application Architecture](http://martinfowler.com/eaaCatalog/)
* [pattern language for microservices](http://microservices.io/patterns/index.html)
* Microsoft's [Cloud Design Patterns](http://download.microsoft.com/download/B/B/6/BB69622C-AB5D-4D5F-9A12-B81B952C1169/CloudDesignPatternsBook-PDF.pdf)
**Links to patterns applied in real world applications** are welcome. The links
should be added to the corresponding section of the `index.md`.
# <a name="versioning">Versioning</a> [&#8593;](#top)
Java-design-patterns project uses [semantic versioning](http://semver.org/)
scheme. However, version numbers in this project do not signify binary releases
(since we don't make any) but rather milestones achieved on the roadmap. In
other words, version numbers are used only for project planning sake.
# <a name="credits">Credits</a> [&#8593;](#top)
* [Design Patterns: Elements of Reusable Object-Oriented Software](http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>abstract-factory</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>adapter</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>async-method-invocation</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>bridge</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>builder</artifactId>
<dependencies>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>business-delegate</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>callback</artifactId>
<dependencies>

View File

@ -1,8 +1,8 @@
---
layout: pattern
title: Chain of responsibility
folder: chain-of-responsibility
permalink: /patterns/chain-of-responsibility/
folder: chain
permalink: /patterns/chain/
categories: Behavioral
tags: Java
---
@ -11,7 +11,7 @@ tags: Java
more than one object a chance to handle the request. Chain the receiving
objects and pass the request along the chain until an object handles it.
![alt text](./chain/etc/chain_1.png "Chain of Responsibility")
![alt text](./etc/chain_1.png "Chain of Responsibility")
**Applicability:** Use Chain of Responsibility when

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>chain</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>command</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>composite</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>dao</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>decorator</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>dependency-injection</artifactId>
<dependencies>

View File

@ -3,7 +3,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>double-checked-locking</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>double-dispatch</artifactId>
<dependencies>

View File

@ -4,7 +4,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>event-aggregator</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>execute-around</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>facade</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>factory-method</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>flux</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>flyweight</artifactId>
<dependencies>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>front-controller</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>half-sync-half-async</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>intercepting-filter</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>interpreter</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>iterator</artifactId>
<dependencies>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<groupId>com.iluwatar.layers</groupId>
<artifactId>layers</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>lazy-loading</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>mediator</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>memento</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>model-view-controller</artifactId>
<dependencies>

View File

@ -0,0 +1,29 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* In this second example the model-view relationship is different. This time we use the Observer pattern to notify
* the {@link GiantView} each time the {@link GiantModel} is changed. This way the {@link GiantController} responsibilities
* are narrowed and it only needs to modify the {@link GiantModel} according to the user input.
*
*/
public class App {
/**
* Program entry point
* @param args command line args
*/
public static void main( String[] args ) {
// create model, view and controller
GiantModel giant = new GiantModel(Health.HEALTHY, Fatigue.ALERT, Nourishment.SATURATED);
GiantView view = new GiantView();
GiantController controller = new GiantController(giant, view);
// initial display
controller.updateView();
// controller receives some interactions that affect the giant
// model modifications trigger the view rendering automatically
controller.setHealth(Health.WOUNDED);
controller.setNourishment(Nourishment.HUNGRY);
controller.setFatigue(Fatigue.TIRED);
}
}

View File

@ -0,0 +1,22 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* Fatigue enumeration
*
*/
public enum Fatigue {
ALERT("alert"), TIRED("tired"), SLEEPING("sleeping");
private String title;
Fatigue(String title) {
this.title = title;
}
@Override
public String toString() {
return title;
}
}

View File

@ -0,0 +1,46 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* GiantController updates the giant model.
*
*/
public class GiantController {
private GiantModel giant;
private GiantView view;
public GiantController(GiantModel giant, GiantView view) {
this.giant = giant;
this.view = view;
this.giant.registerObserver(this.view);
}
public Health getHealth() {
return giant.getHealth();
}
public void setHealth(Health health) {
this.giant.setHealth(health);
}
public Fatigue getFatigue() {
return giant.getFatigue();
}
public void setFatigue(Fatigue fatigue) {
this.giant.setFatigue(fatigue);
}
public Nourishment getNourishment() {
return giant.getNourishment();
}
public void setNourishment(Nourishment nourishment) {
this.giant.setNourishment(nourishment);
}
public void updateView() {
this.view.displayGiant(giant);
}
}

View File

@ -0,0 +1,63 @@
package com.iluwatar.model.view.controller.with.observer;
import java.util.ArrayList;
import java.util.List;
/**
*
* GiantModel contains the giant data.
*
*/
public class GiantModel {
private Health health;
private Fatigue fatigue;
private Nourishment nourishment;
private List<GiantModelObserver> observers = new ArrayList<>();
GiantModel(Health health, Fatigue fatigue, Nourishment nourishment) {
this.health = health;
this.fatigue = fatigue;
this.nourishment = nourishment;
}
public Health getHealth() {
return health;
}
public void setHealth(Health health) {
this.health = health;
notifyObservers();
}
public Fatigue getFatigue() {
return fatigue;
}
public void setFatigue(Fatigue fatigue) {
this.fatigue = fatigue;
notifyObservers();
}
public Nourishment getNourishment() {
return nourishment;
}
public void setNourishment(Nourishment nourishment) {
this.nourishment = nourishment;
notifyObservers();
}
@Override
public String toString() {
return String.format("The giant looks %s, %s and %s.", health, fatigue, nourishment);
}
public void registerObserver(GiantModelObserver observer) {
observers.add(observer);
}
private void notifyObservers() {
observers.stream().forEach((GiantModelObserver o) -> o.modelChanged(this));
}
}

View File

@ -0,0 +1,12 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* GiantModelObserver is the interface for delivering update notifications.
*
*/
public interface GiantModelObserver {
void modelChanged(GiantModel model);
}

View File

@ -0,0 +1,18 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* GiantView displays the giant
*
*/
public class GiantView implements GiantModelObserver {
public void displayGiant(GiantModel giant) {
System.out.println(giant);
}
@Override
public void modelChanged(GiantModel model) {
displayGiant(model);
}
}

View File

@ -0,0 +1,22 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* Health enumeration
*
*/
public enum Health {
HEALTHY("healthy"), WOUNDED("wounded"), DEAD("dead");
private String title;
Health(String title) {
this.title = title;
}
@Override
public String toString() {
return title;
}
}

View File

@ -0,0 +1,22 @@
package com.iluwatar.model.view.controller.with.observer;
/**
*
* Nourishment enumeration
*
*/
public enum Nourishment {
SATURATED("saturated"), HUNGRY("hungry"), STARVING("starving");
private String title;
Nourishment(String title) {
this.title = title;
}
@Override
public String toString() {
return title;
}
}

View File

@ -0,0 +1,19 @@
package com.iluwatar.model.view.controller.with.observer;
import org.junit.Test;
import com.iluwatar.model.view.controller.with.observer.App;
/**
*
* Application test
*
*/
public class AppTest {
@Test
public void test() {
String[] args = {};
App.main(args);
}
}

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>model-view-presenter</artifactId>
<name>model-view-presenter</name>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>multiton</artifactId>
<dependencies>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>naked-objects-dom</artifactId>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>naked-objects-fixture</artifactId>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>naked-objects-integtests</artifactId>

View File

@ -15,7 +15,7 @@
<parent>
<artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>naked-objects</artifactId>
@ -350,17 +350,17 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>naked-objects-dom</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>naked-objects-fixture</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>naked-objects-webapp</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</dependency>
</dependencies>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>naked-objects-webapp</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>null-object</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>object-pool</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>observer</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>poison-pill</artifactId>
<dependencies>

View File

@ -4,7 +4,7 @@
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
<packaging>pom</packaging>
<properties>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>private-class-data</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>property</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>prototype</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>proxy</artifactId>
<dependencies>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>repository</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>resource-acquisition-is-initialization</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>servant</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>service-layer</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>service-locator</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>singleton</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>specification</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>state</artifactId>
<dependencies>

View File

@ -6,7 +6,7 @@
<parent>
<artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>step-builder</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>strategy</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>template-method</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>thread-pool</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>tolerant-reader</artifactId>
<dependencies>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.5.0</version>
<version>1.6.0</version>
</parent>
<artifactId>visitor</artifactId>
<dependencies>