From 0a61d7b06729bec9906ec99fca9d9e9c8cd9f9eb Mon Sep 17 00:00:00 2001
From: Ilkka Seppala <iluwatar@gmail.com>
Date: Sat, 3 Oct 2015 11:53:44 +0300
Subject: [PATCH] Improve Abstract Factory Javadocs

---
 .../java/com/iluwatar/abstractfactory/App.java  | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java
index 29e9272f6..618b98c52 100644
--- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java
+++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java
@@ -3,12 +3,21 @@ package com.iluwatar.abstractfactory;
 
 /**
  * 
+ * The Abstract Factory pattern provides a way to encapsulate a group of individual 
+ * factories that have a common theme without specifying their concrete classes. In 
+ * normal usage, the client software creates a concrete implementation of the abstract 
+ * factory and then uses the generic interface of the factory to create the concrete 
+ * objects that are part of the theme. The client does not know (or care) which 
+ * concrete objects it gets from each of these internal factories, since it uses only 
+ * the generic interfaces of their products. This pattern separates the details of 
+ * implementation of a set of objects from their general usage and relies on object 
+ * composition, as object creation is implemented in methods exposed in the factory 
+ * interface.
+ * <p>
  * The essence of the Abstract Factory pattern is a factory interface
  * ({@link KingdomFactory}) and its implementations ({@link ElfKingdomFactory},
- * {@link OrcKingdomFactory}).
- * <p>
- * The example uses both concrete implementations to create a king, a castle and
- * an army.
+ * {@link OrcKingdomFactory}). The example uses both concrete implementations to 
+ * create a king, a castle and an army.
  * 
  */
 public class App {