gpt4 book ai didi

.net - 如何解决 "Growing If Statement"问题?

转载 作者:行者123 更新时间:2023-12-03 12:49:09 25 4
gpt4 key购买 nike

我一直在阅读有关设计模式的一些内容,并希望获得一些观点。考虑以下:

Dim objGruntWorker as IGruntWorker

if SomeCriteria then
objGruntWorker = new GoFor()
else if SomeOtherCriteria then
objGruntWorker = new Newb()
else if SomeCriteriaAndTheKitchenSink then
objGruntWorker = new CubeRat()
end if

objGruntWorker.GetBreakfast()
system.threading.thread.sleep(GetMilliSecondsFromHours(4))
objGruntWorker.GetLunch()

每次出现新标准时,上述代码都会增长。我到处都看到过这样的代码,而且我自己也无知地写了一些。这应该如何解决?这种反模式有没有更“正式”的名字?谢谢你的帮助!

编辑:另一个考虑是我想避免重新编译IGruntWorker的现有实现。只是添加一个新的实现。

最佳答案

这种逻辑通常使用 Factory method pattern 封装。 . (参见 Encapsulation 下的 ImageReaderFactory 示例。)

关于.net - 如何解决 "Growing If Statement"问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997803/

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