我正在阅读Orielly Design模式,其中有一行是“We can change the Behavior ofany object at runtime
”以及如何使用getter和setter更改运行时对象的行为。
最佳答案
行为就是对象的工作方式。运行时间是应用程序的生命。因此,该语句意味着在程序运行期间,我们能够操纵对象可以做什么。
要进行模拟,请参见以下示例:
public class MyObjectTest {
public static final void main(String[] args) {
MyObject myObject = new MyObject();
String theMessage = "No message yet.";
theMessage = myObject.readSecretMessage();
myObject.setIsSafe(true);
theMessage = myObject.readSecretMessage();
}
}
public class MyObject {
private boolean isSafe = false;
public boolean isSafe() {
return this.isSafe;
}
public boolean setIsSafe(boolean isSafe) {
return this.isSafe = isSafe;
}
public String readSecretMessage() {
if(isSafe()) {
return "We are safe, so we can share the secret";
}
return "They is no secret message here.";
}
}
分析:
程序将返回两个不同的消息,取决于字段
isSafe
的决定。可以在运行时的对象生命周期(对象生命周期以operator new
开头)中进行修改。这意味着我们可以更改对象的行为。