public ProductModel CreateProduct(IProductFactory productFactory)
        {
            ProductModel ProductModel = productFactory.MakeProduct();
            WidgetModel  Widget1      = productFactory.MakeWidget(WidgetShape.Square, WidgetColor.Gray, WidgetSize.Large);
            WidgetModel  Widget2      = productFactory.MakeWidget(WidgetShape.Circle, WidgetColor.Red, WidgetSize.Medium);

            productFactory.ConnectWidgets(Widget1, Widget2);

            ProductModel.AddWidget(Widget1);
            ProductModel.AddWidget(Widget2);

            return(ProductModel);
        }