有一个只有属性的类可以吗

本文关键字:属性 有一个 | 更新日期: 2023-09-27 18:00:33

我有一个超过700行长的方法。在该方法的开头,声明了大约50个局部变量。我决定将局部变量取出,并将它们作为属性放入一个单独的类中,这样我就可以在方法中声明该类,并使用属性来完成它。这完全可以吗?还是其他数据类型(如结构)适合这里?这种方法是在经典的ASP时代编写的。

有一个只有属性的类可以吗

我有一个超过700行的方法。在该方法的开头,声明了大约50个局部变量。

好的,那么,这个方法的长度也是个问题。700条线太多了,一个正常人一次都无法保持头脑清醒。当你必须修复其中的一个错误时,你最终会上下滚动,上下滚动。。。你明白了。这真的让事情很难维持。

所以我的答案是,是的,你应该把你的数据分解成某种结构,假设这样做实际上是有意义的(也就是说,我可能不会创建SomeMethodParmaters类)。下一步要做的是将这种方法分解成更小的部分。您甚至可能会发现,您不再需要数据结构,因为现在每个方法都只有为其所需工作声明的少数变量

此外,这是主观的,但确实没有充分的理由在方法的顶部声明所有变量。尽量在接近实际使用时声明它们。同样,这只是为了保持事物的美观和清洁,以便将来进行维护。当你可以在屏幕上看到全部代码时,集中精力处理一段代码会容易得多。

Hrm。。。我认为你最好重构这个方法,而不必对这么多变量进行操作。例如,对10个变量分别进行操作的5种方法会更好。就目前情况来看,感觉就像你只是想掩盖问题而不是解决它。

我强烈建议您通读这本书和/或任何数量的与重构有关的网站。http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672

虽然你不能在一个方法中看到700+行,然后自动说这很糟糕,但这确实表明代码有臭味。方法应该是具有单一用途的小代码单元。这会让你或你身后的人更容易维护。它还可以帮助你找出设计的改进之处,并使未来更改设计变得更加容易。

创建一个类只是为了保存属性,而不考虑整体结构应该是什么,这只是隐藏了一个问题。这并不是说在这个特定的例子中,这不是一个完全可接受和正确的解决方案,只是你应该确保你花时间提供一个经过深思熟虑的设计,让你的类拥有它们应得的属性、状态和功能。

希望这能有所帮助。

相关文章: