如何实现动态加载新产品的工厂模式(开放式关闭原则?)>

问题描述 投票:0回答:1

在工厂方法中,我们必须编写switch case或if语句来确定要创建和返回的实例。这违反了开放关闭原则,因为-每次要添加新产品时,都必须更新工厂方法代码。

有什么方法可以使它动态化,以便添加新产品不需要更改工厂方法?

例如:在python中,我们可以导入包含所有可用产品列表的软件包。 factory方法将dict数据结构与所有可用产品及其类一起加载。因此,添加新产品时无需更改工厂代码。仅将产品添加到工厂用于导入产品类的包装代码中就足够了。

在工厂方法中,我们必须编写switch case或if语句来确定要创建和返回的实例。这违反了开放关闭原则,因为-每次要添加新产品时,...

c# design-patterns factory-pattern open-closed-principle
1个回答
0
投票

我不知道这是否真的可以为您提供帮助,但是如果您在产品类上使用无参数构造函数,则可以使用此示例。当然,根据您的需求,实现可能会有所不同。产品类也可以在不同的程序集中定义。

© www.soinside.com 2019 - 2024. All rights reserved.