我正在阅读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开头)中进行修改。

这意味着我们可以更改对象的行为。

07-28 05:41