These are the classes: Premise: There are 3 families A, B, C and 3 atomic/elementary products P1, P2, P3. 1. For each of these products there is an interface and a class for each family. interface P1IF class P1_A implements P1IF (two more classes for B and C) two more interfaces for P2 and P3 and 6 more classes 2. There is an abstract factory class and a concrete class for each family abstract class FactoryIF concrete class Factory_A extends FactoryIF (two more classes for B and C) 3. There is a class for product P and for the client These are the methods: 1. abstract P1IF create_P1 in the abstract class factory concrete P1IF create_P1 in each concrete factory (A, B and C) concrete create_P1 method calls constructor of P1 for that family 2. (possibly final) P create_P in abstract factory method create_P calls create_P1, ... create_P3 and constructor of P 3. clients declares abstract factory and construct concrete factory clients call method create_P of factory