Let's enumerate the elements involved in Generalization of object factories. This gives us the intellectual workout necessary for putting together a generic object factory. • Concrete product. A factory delivers some product in the form of an object. • Abstract product. Products inherit a base type (in our example, Shape). A product is an object whose type belongs to a hierarchy. The base type of the hierarchy is the abstract product. The factory behaves polymorphically in the sense that it returns a pointer to the abstract product, without conveying knowledge of the concrete product type. • Product type identifier. This is the object that identifies the type of the concrete product. As discussed, you have to have a type identifier to create a product because of the static C++ type system. • Product creator. The function or functor is specialized for creating exactly one type of object. We modeled the product creator using a pointer to function.
Let's enumerate the elements involved in Generalization of object factories. This gives us the intellectual workout necessary for putting together a generic object factory.
• Concrete product. A factory delivers some product in the form of an object.
• Abstract product. Products inherit a base type (in our example, Shape). A product is an object whose type belongs to a hierarchy. The base type of the hierarchy is the abstract product. The factory behaves polymorphically in the sense that it returns a pointer to the abstract product,
without conveying knowledge of the concrete product type.
• Product type identifier. This is the object that identifies the type of the concrete product. As discussed, you have to have a type identifier to create a product because of the static C++ type system.
• Product creator. The function or functor is specialized for creating exactly one type of object. We modeled the product creator using a pointer to function.
Step by step
Solved in 2 steps