![]() |
1
23
您应该能够将案例的各个部分提取到参数化帮助器函数中:
这是一个选项,我确信还有进一步的重构。 对于更深入的重构,我将使用选项对象、可能的委托或类似的集合来查看表驱动。其工作方式是,选项将成为对象而不是字符串,并且该选项将具有配置它的属性和调用适当委托的方法。它实际上取决于您想要维护的抽象级别。有时,从常规控件继承并在子类中提供配置信息以使它们知道如何加载自己是值得的。 这里没有足够的空间真正进入重构的深度。 |
![]() |
2
15
我想要这样的:
现在看看我们是如何很好地与变化隔离。
|
![]() |
3
9
记住,这只是对所显示内容的重构。根据您所展示的内容,您可能需要考虑对整个方法进行更深入的重构。然而,这可能不可行。 因此:
|
![]() |
4
2
与此类似的东西应该可以工作:
|
![]() |
5
2
这里有一个只是为了好玩(这意味着它不太可能是一个好主意,而且完全没有经过测试):
如果我希望能够动态地改变(即在运行时)选项集匹配,并且我希望执行的代码(加载算法)是完全开放的,那么我只需要这样做。 |
![]() |
6
1
引发异常的另一种方法是将选项字符串重新键入枚举中,只使用您允许的值。这样您就知道,如果您得到一个正确的枚举作为输入参数,那么您的选项将被处理。 |
![]() |
7
0
有两个功能,
|
![]() |
8
0
|
![]() |
insipidintegrator · 通过迭代器/指针访问命名空间? 6 月前 |
|
Ben · 如何使用带有部分应用的过滤器功能的角度材质日期选择器? 1 年前 |
![]() |
larn · 这是工厂模式还是战略模式? 1 年前 |
![]() |
Community wiki · 您对存储库模式的理解是什么? 1 年前 |