我有这种情况;接受来自main方法参数的一组值,并且必须在多个类和多个方法中使用。您能否建议,除了作为方法参数传递之外,使这些参数在类中可用所需的最佳实践或设计模式是什么?
例:
从主方法接收参数,如参数1,参数2,参数3。参数6 现在这些参数必须由其他类方法使用。
你问了一个非常笼统的问题,所以我会给出一个非常笼统的答案。
-
使用某种形式的依赖注入 - 您不必使用专用的 DI 框架,我很少这样做,通常我让 main 方法不包含任何逻辑,除了连接我的对象,然后在某个驱动程序类上调用一个方法,该驱动程序类连接了整个世界。 它为单元和集成测试带来了与任何 DI 框架相同的好处,并且不会强迫下一个开发人员学习您选择的任何特殊、文档记录不佳且未维护的 DI 框架;相反,你使用Scala——它真的非常强大,更多的人应该尝试一下。
-
如果发现方法和构造函数重复采用相同的参数集,请创建一个描述这些参数的参数类。
-
对于一个方法来说,超过 2 个参数太多,1 个参数比 2 个好,没有参数是最好的。
最后,阅读Robert C. Martin的Clean Code: A Handbook of Agile Software Craftsmanship,它教授了最基本的代码应该是什么样子,我认为每个程序员在听到"设计模式"这个词之前都应该学习它的概念。方法应该有多长? 方法应该接受多少个参数? 方法应该如何命名? 我有一个很长的方法,我该如何分解它? 类应该如何命名,其中应该包含什么? 等。
或者你可以做一些可怕的事情,比如在任何地方使用 Scala 隐式参数。
如果要传递数据集合 (在您的示例中, 一组六个参数(, 创建包含数据的类是一种合理的做法 (在您的示例中, 包含六个参数的类( 并传递该类的实例,而不是不断传递六个参数。
最佳做法实际上是将它们作为参数传递。 如果你不想要这样,你几乎会被这样的东西所困:
object Globals {
var param1: String
var param2: String
// ...
}
但这真的很恶心。别这样。