Consider a factory for the following situation: 1. There are 3 "families", referred to as A, B, and C, of products. 2. A client requires a single product, referred to as P, of a given family. Product P contains, as members, 3 other products, referred to as P1, P2 and P3, of its own family. Design a factory and sketch its code for the situation presented above. 1. Using Java and/or pseudo-code show the classes and/or interfaces of the factory, families, products etc. that play a significant role in the design. 2. In each class or interface include any relevant methods and any call to these methods. 3. Show a fragment of code that constructs an instance of P for family A. Hint: Don't code all 3 families. Code only one and tell what changes in another family. Don't code all 3 products. Code only one and tell what changes in another product.