gpt4 book ai didi

c# - 根据某些标准创建不同的类型

转载 作者:行者123 更新时间:2023-11-30 15:05:14 25 4
gpt4 key购买 nike

我在一个应用程序中有一些代码,我现在并不真正喜欢这些代码。我创建了几个这样的类:

class Base
{
// base properties ...
}

class DerivedA : Base
{
}

class DerivedB : Base
{
}

我的应用程序中有一个方法需要根据存储在数据库中的字符串属性创建这些对象之一(将来会有更多对象)。这些对象中的每一个都从稍微不同的地方获取数据,但我现在这样做的方式只是一个很大的 if block ,而且它看起来不太容易维护:

class BaseCreator
{
Base Create(string name)
{
if (name == "DerivedA" )
return CreateDerivedA();
else if(name == "DerivedB")
return CreateDerivedB();
}
}

我可以通过哪些方式重构此代码以使其更易于维护并使将来添加新类型更容易?如果有任何不同,我会在我的应用程序中使用依赖注入(inject) (Ninject)。

最佳答案

继承树一旦长大,总是很难维护。如果您预先知道树会很大——请认真考虑使用组合而不是继承。尤其是如果您已经在使用 DI 框架,接口(interface)就是最佳选择。

关于c# - 根据某些标准创建不同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com