wcobalt Asked:2020-11-22 01:22:07 +0000 UTC2020-11-22 01:22:07 +0000 UTC 2020-11-22 01:22:07 +0000 UTC 依赖注入、临时变量和原语 772 假设在其中一个组件中,您需要以某种方式打开一个文件。例如,如果您BufferedReader在带有资源的 try/catch 块中执行此操作,那么结果是组件依赖于BufferedReader,但为什么不在构造函数中传递任何非原始类型的临时变量以避免依赖?“修复”它有多好? PS我希望问题很清楚 java 1 个回答 Voted Best Answer Демьян Бельский 2020-11-22T02:01:47Z2020-11-22T02:01:47Z 恕我直言。您可以以不同的方式看待图片。假设您需要打开一个文件(从中读取文本?)。为什么不创建类似 FileService 的东西并将其作为依赖项传递。以及在此服务内部实现的方法。(当然,为您需要的方法创建一个接口)。然后我们将能够在服务本身中更改从文件接收数据的方式,而不会影响我们的类。这将是一个弱连接。另一方面,您不必害怕依赖 bufferedReader。您将来用某物替换它的概率是多少?BufferedReader 只是将文件读取给您。值得看看这位读者给你的东西。有什么资料吗?是否计划(是否有可能)以另一种方式获取相同的信息?如果是,则创建一个将返回此信息的服务,而只有他自己会知道他是如何收到它的。如果你有来自文件的信息,并且总是从文件中读取,那么你不应该害怕连接。我们应该以最少的凝聚力为目标,而不是完全摆脱它。
恕我直言。您可以以不同的方式看待图片。假设您需要打开一个文件(从中读取文本?)。为什么不创建类似 FileService 的东西并将其作为依赖项传递。以及在此服务内部实现的方法。(当然,为您需要的方法创建一个接口)。然后我们将能够在服务本身中更改从文件接收数据的方式,而不会影响我们的类。这将是一个弱连接。另一方面,您不必害怕依赖 bufferedReader。您将来用某物替换它的概率是多少?BufferedReader 只是将文件读取给您。值得看看这位读者给你的东西。有什么资料吗?是否计划(是否有可能)以另一种方式获取相同的信息?如果是,则创建一个将返回此信息的服务,而只有他自己会知道他是如何收到它的。如果你有来自文件的信息,并且总是从文件中读取,那么你不应该害怕连接。我们应该以最少的凝聚力为目标,而不是完全摆脱它。