我目前有4个月的实习期,在查看我的代码时,我的老板不喜欢我在一个程序集中几个单独的类中的多个方法中保留了一个特定的对象。他不喜欢每次都创建一个新对象,而是告诉我创建一个可以从任何地方访问的对象。因此,我不得不将其创建为静态类中的静态对象,并从此处引用它以使用它!
我只从事4个月的专业编程,您将如何处理呢?
我目前有4个月的实习期,在查看我的代码时,我的老板不喜欢我在一个程序集中几个单独的类中的多个方法中保留了一个特定的对象。他不喜欢每次都创建一个新对象,而是告诉我创建一个可以从任何地方访问的对象。因此,我不得不将其创建为静态类中的静态对象,并从此处引用它以使用它!
我只从事4个月的专业编程,您将如何处理呢?
Answers:
如果一个对象就足够了,那么每次创建一个对象都是浪费,在这里老板可能是对的。
问题是正确访问该对象。第一个想到的解决方案是具有适当可见性的工厂式方法,该方法始终返回该静态对象。当然也存在其他人。
我不能评论你的具体情况,但使用全局变量是有时一个很好的解决方案。Java的System类充满了静态的全局变量。
但是总的来说,如果您认为自己是对的,而老板是错误的,那么为什么不要求老板解释为什么他认为全局变量是更好的解决方案呢?一个简单的“我不喜欢它”就像“全局变量是邪恶的”一样模糊。您必须向老板要求更多!
如果他不能说出自己的立场,而您可以说出自己的立场,反之亦然,那么这是一个很好的学习机会。如果你们俩都可以证明自己的立场是正当的,那么这可能是个人品味或经验的问题:您的老板一定在专业编程方面已经超过4个月了,我认为?
java.lang.System
恰好包含三个全局变量,对于每个全局变量,都有一种正确设置它的方法。但是System
到处都是静态方法,这些方法返回全局对象,并且这没有什么不对的,不能争辩。
System
简化99.9%的用例,而其余的0.1%则会引起问题。没有0.1%的额外复杂性值得“正确”的答案。
作为处于您所处位置的人,您最多可以做的就是学习。如果对象本质上是一个常量(即,它不能改变并且不保持状态),那么老板可能是对的。拥有静态常量对象没有任何危害。毕竟,PI有多少个定义?
有些人捍卫“没有全球目标”的心态,直到宗教狂热者。这是由于两个原因之一:由于过度使用全局变量/对象,他们很难跟踪bug或系统脆弱性,或者他们听说这很不好,他们无法自己思考。我个人属于遭受脆弱性和难以跟踪错误困扰的人群-但我在这里也学到了一些平衡。
如果我穿上你的鞋子,我会继续做老板说的话-毕竟这是他的屁股。然后,我会观察并观察该选择随时间的变化。这是一种有效的学习工具。
也许您的老板想要您使用单例模式。当您需要从多个实例访问某个对象时,这是一个很好的做法。
这是维基百科解释的链接
good practice
应该使用en.wikipedia.org/wiki/Dependency_injection