扩展方法是否违反了软件工程原则?

Dha*_*ana 3 extension-methods

我倾向于回避扩展方法(在C#中),因为它违反了软件工程的"代码内聚"原则.

那么,为什么呢?还是我的理解错了?

Ant*_*hyy 11

相反,我认为明智地使用扩展方法可以提高代码的内聚力,因为您可以将方法和类放在一起执行相关任务.情况与C++中的自由(静态)方法和Koenig查找没什么不同,扩展访问.只是语法糖.

  • +1,完全正确.它是静态方法的语法糖,它应该如何用作. (2认同)

Joh*_*lla 8

扩展方法就像你的武器库中的任何工具.明智地使用它们时,它们是一个强大的补充,使你能够写出笨拙的东西来表达.使用不好,他们是一个尴尬的拐杖把东西拼凑在一起.

也就是说,我不同意你的说法,即它违反了代码凝聚力 - 我认为这实际上恰恰相反.如果您没有扩展方法,则会被迫使用遍布代码遍布各处的实用程序类.