gpt4 book ai didi

java - 静态与对象实例化

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:18 25 4
gpt4 key购买 nike

我正在使用 struts2 框架开发一个网站。

我只需要有关何时使用静态方法以及何时为类实例化对象的建议。

例如:在我的数据库连接中,我使用单例,这样每个用户就只有一个数据库连接(这是正确的吗?)我在想如果我有一个类,假设它是一个充满方法的类,仅用于操作数据库中的数据。我也应该将这些方法设为静态吗?或者我是否也应该将该类设为单例,以便我的应用程序只有一个充满方法的类实例?

最佳答案

静态方法非常适合“纯函数”:这样的代码片段不依赖于配置的运行时状态并且没有副作用。

符合上述描述的方法可以很容易地自行进行单元测试,因为它没有任何您必须模拟的依赖项,而且模拟其功能也没有意义。

有时,即使符合上述描述的函数也可能受益于作为实用对象的实例方法,因为这样可以利用多态性来覆盖某些行为。就我个人而言,我从来不需要这样做,因为我选择实现为静态的那些方法只有一个有意义的实现。

此外,工厂 方法本质上要求是静态的,因为它们是提供实例的方法。工厂方法可以很简单(围绕构造函数的一些便利)或具有依赖性,尤其是在某些配置上。在客户端代码中,您可以依靠依赖注入(inject)框架来避免重量级工厂方法,但通常独立库会通过提供静态工厂方法来提供进入其 API 的入口点。

关于java - 静态与对象实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com