The Abstract Factory Pattern

Product2 {abstract} AbstractProduct1 {abstract} <<interface>>