【问题标题】:How to decide parameters of a constructor [closed]如何确定构造函数的参数[关闭]
【发布时间】:2019-12-19 13:48:10
【问题描述】:

我有一个构造函数接受上下文作为参数的类。使用上下文它派生其他属性。

我的问题是我应该将这些属性作为构造函数的参数传递还是使用 Context.

例子:

class A (val context:Context){

  val someOtherClass = SomeOtherClass(context)
  val derivedValue = someOtherClass.deriveValue

}

【问题讨论】:

    标签: java kotlin code-formatting


    【解决方案1】:

    您应该为班级提供完成工作所需的东西,而不是更多。在类范围之外派生类所需的参数。构造函数的工作应该只是变量初始化(最好是私有 final 字段)。

    如果您有一些参数(someOtherClass、derivedValue),则将它们直接传递给构造函数。如果您有很多,而不是 Context 对象,请创建自己的对象,使其不直接依赖于上下文。这样你就可以根据测试的需要相对容易地模拟它,并且它与你的上下文对象分离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2016-07-14
      • 2020-05-20
      相关资源
      最近更新 更多