【发布时间】:2016-06-29 12:03:30
【问题描述】:
我试图弄清楚这段代码的作用。它基于设计模式。有人可以解释发生了什么,特别是在getNonTrivialStuff 类型为NonTrivialClass 的最后一种方法中
public class E{
private SomeOtherClass myObject = null;
private String trivialString;
public E(){
trivialString = "Trivial";
}
public String getTrivialStuff(){
return myTriv;
}
public NonTrivialClass getNonTrivialStuff(){
if (myObject == null){
myObject = SomeOtherClass.getObject();
}
return myObject.getNonTrivialStuff();
}
}
【问题讨论】:
-
它基于什么设计模式?
-
它看起来像是一个围绕单例的包装器/代理的糟糕实现。基本上,代码使用惰性评估在您的类中设置一个字段。所以,它真的没有什么特别之处。关键是最初字段
myObject为空;当第一次调用 getNonTrivialStuff 时,该字段被初始化,然后用于返回 NonTrivialClass 的实例。那么究竟是什么让你不明白呢? -
让我困惑的是“someOtherClass”。不应该是 NonTrivialClass 吗?
标签: java design-patterns