0

我在事件驱动编程和使用 MVC 方面相当新,所以如果这个问题看起来像一个非问题,请原谅我。

我正在尝试将值分配给我的单例模型类(客户端)。我有两个选择:

  1. 我可以使用模型类构造函数来分配给自己,如下所示:

    类客户{

         public var name;
         public var email;
    
         public function Client(arg_name, arg_email){
             this.name = arg_name;
             this.email = arg_email;
           } 
      }
    
  2. 我可以使用控制器为我分配值,如下所示:

    Class Controller{
         public var client:Client = new Client();
    
         public function assign(){
            client.name = "booo";
            client.email = "blaaah@email.com";
         }
    

    }

其中哪一个是更好的解决方案?:) 我如此困惑的原因是因为我看到的示例只是将值传递给模型类并执行#1(并设置新变量,例如 [var fullname = fname + lname],但我知道事实上,为模型分配值是控制器的工作。

4

1 回答 1

0

更好是相对的。

第二个例子就是通常所说的“财产注入”。

基本上,第一个选项更快、更小、代码更少。

第二个选项更具可读性和灵活性。

不管控制器如何,注入的好处是您可以为每个属性创建 getter 和 setter。

所以基本上你可以发生一些事情,比如每当你改变“name”属性的值时调度一个事件。

flex 源代码充满了这个概念。例如,每当您更改组的宽度时,它不仅会更改值,还会执行检查,然后将组设置为脏,以便其他事物可以对其做出反应。

基本上它使一切都做自己的事情变得简单,而且它更加面向对象。

所有这些并不意味着它实际上更好,但现在以第二种选择样式编写代码更为常见。

希望有帮助。

于 2012-05-18T23:08:24.827 回答