From 8cb1387709d2e2f6df86cbac6b7e617ab20aac29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 23 Aug 2014 20:33:48 +0300 Subject: [PATCH 1/2] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8a47c1e11..67903215e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,12 @@ ![alt text](https://github.com/iluwatar/java-design-patterns/blob/master/abstract-factory/etc/abstract-factory.jpg "Abstract Factory") +**Applicability:** Use the Abstract Factory pattern when +--* a system should be independent of how its products are created, composed and represented +--* a system should be configured with one of multiple families of products +--* a family of related product objects is designed to be used together, and you need to enforce this constraint +--* you want to provide a class library of products, and you want to reveal just their interfaces, not their implementations + ##Builder **Intent:** Separate the construction of a complex object from its representation so that the same construction process can create different representations. From 9290c958979699c8955fb8807b3fc4cae010b5cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 23 Aug 2014 20:34:34 +0300 Subject: [PATCH 2/2] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 67903215e..914a4a305 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,10 @@ ![alt text](https://github.com/iluwatar/java-design-patterns/blob/master/abstract-factory/etc/abstract-factory.jpg "Abstract Factory") **Applicability:** Use the Abstract Factory pattern when ---* a system should be independent of how its products are created, composed and represented ---* a system should be configured with one of multiple families of products ---* a family of related product objects is designed to be used together, and you need to enforce this constraint ---* you want to provide a class library of products, and you want to reveal just their interfaces, not their implementations +* a system should be independent of how its products are created, composed and represented +* a system should be configured with one of multiple families of products +* a family of related product objects is designed to be used together, and you need to enforce this constraint +* you want to provide a class library of products, and you want to reveal just their interfaces, not their implementations ##Builder **Intent:** Separate the construction of a complex object from its representation so that the same construction process can create different representations.