我读到一个类就像一个对象的蓝图。那么声称一个类被认为是不好的做法,但是然后在程序中,从来没有实际创建类的实例(但只是在类中有静态方法)?
答案 0 :(得分:7)
我想说在面向对象编程中,我应该最小化静态的使用,但它们确实有一席之地。在静态方法/变量适当的时候开发一个很好的感觉需要一些时间,所以我开始只在一小部分情况下使用它们,鼓励它们,然后在获得经验时扩展你的使用。列出一些适当的用途:
在任何关于使用静力学的讨论中,值得discussing dependency injection and writing testable code,因为这些原则不鼓励使用global state,这通常是被宣布为静态的副作用。
答案 1 :(得分:3)
如果你的班级没有任何与之相关的状态(意味着没有实例变量),那么拥有所有静态方法都没关系。一个示例是一个简单的实用程序类,它封装了每个DAO中需要的行为,比如关闭数据库连接,语句和结果集。我对我创建的每个项目都这样做。
但是,您希望小心使用静态方法,因为它们无法被覆盖,并且在某些情况下很难进行测试。
答案 2 :(得分:-2)
静态被认为是一种非常糟糕的做法,原因有几个
静态类的最大问题是您无法模拟它们,这意味着您无法以良好的方式测试使用它们的代码, 某些人需要实用程序类,但它本身被认为是一种气味,因为在SOLID原则中,一个类应该有它的责任,并且通过创建一个实用程序(通用)类,你可以打破单个类。责任原则"
静态原则也与语言无关,但与OO原则本身无关。
就足够了