【发布时间】:2012-10-05 23:08:20
【问题描述】:
我正在开发一个相当大的应用程序和我的技术主管,但我在某些事情上意见不一致。
其中之一是关于控制台应用程序。这些应用程序正在从 shell 脚本移植到 C#。其中一些脚本相当大(转换后的代码为 300-400 行),并执行 I/O、电子邮件和数据库访问等操作。
我为这些脚本中的每一个创建了一个类。每个类都有一个 Run 方法,该方法调用其中的任何方法/操作。在 Program.cs/main 中,我创建了一个该类的对象并调用 Run。 Program.cs 包含 4-5 行代码。干净简单。
我的技术主管想要摆脱脚本类,只将所有内容都放在 program.cs 的 main 方法中。他的理由是它的方式太混乱了。
这样做感觉很尴尬,因为类不再可重用/可打包到类库中,而不必摆弄 main 方法。
单元测试似乎不受影响,因为您可以实例化 Program.cs 本身,但同样......这感觉很笨拙。以我没有看到的方式这样做有什么好处吗?我的方式有什么好处吗?在您的 main 方法中处理大型应用程序和内容时,是否有一般做法?
感谢您的宝贵时间。
【问题讨论】:
-
他错了。
-
这个问题更适合程序员,IMO,因此投票结束。这真的完全取决于你的班级做什么,但总的来说,单一职责原则是一个很好的经验法则 - en.wikipedia.org/wiki/Single_responsibility_principle
-
我不确定“每个类都有一个调用其中的任何方法/操作的 Run 方法”是否足以改进,因为这看起来好像有人可以在不理解什么的情况下阅读 main程序确实如此。
-
这个问题不是题外话,可能不应该被关闭。诸如“在什么情况下您在代码中_____”之类的问题完全符合 SO 的适当问题指南。即使正确答案是“从不”。
-
@tylerl - 更适合programmers.stackexchange.com,仅仅因为这里的程序员达成共识并不意味着这个问题不是意见/讨论驱动的。我投票“离题”是因为我认为它应该是针对程序员的,如果我们没有这个选项,我会投票“不具建设性”。