Java 如何确定构造函数的参数

Java 如何确定构造函数的参数,java,kotlin,code-formatting,Java,Kotlin,Code Formatting,我有一个类,其构造函数接受上下文作为参数。使用上下文可以派生其他属性 我的问题是,我应该将这些属性作为构造函数的参数传递,还是使用上下文派生它们 例如: class A (val context:Context){ val someOtherClass = SomeOtherClass(context) val derivedValue = someOtherClass.deriveValue } 你应该给全班学生完成任务所需要的,而不是更多。在类的作用域之外派生类需要的参数。构造

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

我的问题是,我应该将这些属性作为构造函数的参数传递,还是使用上下文派生它们

例如:

class A (val context:Context){

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

}

你应该给全班学生完成任务所需要的,而不是更多。在类的作用域之外派生类需要的参数。构造函数的工作应该只是变量初始化(理想情况下是私有的final字段)

如果您有一些参数(someOtherClass,derivedValue),请将它们直接传递给构造函数。如果你有很多,而不是上下文对象,创建你自己的对象,这样它就不会直接依赖于上下文。通过这种方式,您可以根据测试需要相对轻松地模拟它,并且它与您的上下文对象解耦