|
|
1
1
这是一个不错的中间步骤,因为它至少为您提供了一种方法来划分功能,并证明扩展“模块”之间没有方法间的依赖关系。这是朝着创建真正的子类迈出的第一步,尽管它仍然不理想(您不能为单元测试单独实例化模块类) 一旦有了这个分区,就应该更容易创建新类,因为您已经确定了模块边界。过程如下:
|
|
|
2
0
扩展方法只是一种“语法糖”。您可以定义公共静态方法,并将HugeClass实例作为其中一个参数。 所以没什么区别。编译后的CIL文件将相同。 |
|
|
3
0
我看到你的设计是不同的,但为什么你没有使用工作流基础4.0?它简单灵活。您可以在工作流中将代码编写为CodeActivity。我认为您可以将工作流(活动)假设为可以添加到核心的新模块作业。 此外,还可以动态生成非常有用的工作流(活动)。 (请原谅我英语不好) |
|
|
4
0
我建议您按原样创建设计,将hugclass中的功能移到它应该的位置,然后将方法调用留在hugclass中,但要让它遵从它移到的位置:
随着时间的推移,你在雇佣 Facade Pattern 和雨果。这个 Obsolete attribute 我对HugeClass方法的应用意味着每次编译调用HugeClass中方法的东西时,都会生成一个警告,指出新功能的位置。属性中的“false”参数使其成为警告,可以将其更改为true以使其成为错误。这样你就不会做太多额外的工作了,它代表着你想要达到的目标,我不相信你的扩展方法技术一定能做到。随着时间的推移,HugeClass中的方法可以被删除,直到它是一个空类并且它本身可以被删除。 顺便说一下,如果你没读过马丁·福勒的书 Refactoring 这是一本很好的书。在书中他讨论了这个和许多其他的技巧。 |