使用静态块在java中分配资源

时间:2016-06-09 15:05:15

标签: java

在类的静态字段中打开数据库连接等资源是不好的做法。

class ClassName {
    static {
        //open database connection
    }
}

注意:我没有在多个类中使用相同的资源。它仅用于最近一个班级。

我这样做,基本上是为了确保程序在中途不会因为资源分配错误而失败。

编辑:我是应用程序开发(实习生)的新手。我已经阅读了大部分先前的答案,但找不到与我提出的问题相关的任何内容(良好实践)。

1 个答案:

答案 0 :(得分:3)

这绝对是不好的做法。

请记住, static 是良好OO设计的异常(最后, static 转换为伪装的程序编程)。

换句话说:您不希望在某些静态初始化程序中准备数据库设置这么重要。含义:您很可能应该在类中添加某些抽象,而不是直接依赖于此类代码。

除此之外:如果你在某一点上确定需要某种程度的控制,会发生什么?如果那些"资源"那几乎是不可能的。由您的班级静态拥有。

当然:如果你的课程依赖于静态代码......那么你就可以渲染它们了。#34; hard" (好吧,几乎不可能)默认进行单元测试。不使用 static 就像#34中的第一课;如何创建可测试代码"学校。