在工厂方法中,我们必须编写switch case或if语句来确定要创建和返回的实例。这违反了开放关闭原则,因为-每次要添加新产品时,都必须更新工厂方法代码。
有什么方法可以使它动态化,以便添加新产品不需要更改工厂方法?
例如:在python中,我们可以导入包含所有可用产品列表的软件包。 factory方法将dict数据结构与所有可用产品及其类一起加载。因此,添加新产品时无需更改工厂代码。仅将产品添加到工厂用于导入产品类的包装代码中就足够了。
在工厂方法中,我们必须编写switch case或if语句来确定要创建和返回的实例。这违反了开放关闭原则,因为-每次要添加新产品时,...
我不知道这是否真的可以为您提供帮助,但是如果您在产品类上使用无参数构造函数,则可以使用此示例。当然,根据您的需求,实现可能会有所不同。产品类也可以在不同的程序集中定义。