0

私はイベント駆動型プログラミングと MVC の使用にかなり慣れていないので、この質問が質問ではないように思われる場合はご容赦ください。

シングルトン モデル クラス (Client) に値を割り当てようとしています。2 つのオプションがあります。

  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

より良いのは相対的です。

2 番目の例は、一般に「プロパティ インジェクション」と呼ばれるものです。

基本的に、最初のオプションは、より速く、より小さく、より少ないコードです。

2 番目のオプションは、より読みやすく柔軟です。

コントローラーに関係なく、インジェクションには、プロパティごとにゲッターとセッターを作成できるという利点があります。

したがって、基本的に、「name」プロパティの値を変更するたびにイベントをディスパッチするなど、何かを行うことができます。

flex のソース コードには、この概念が盛り込まれています。たとえば、グループの幅を変更するたびに、値を変更するだけでなく、チェックを実行してからグループをダーティとして設定し、他のものがそれに反応できるようにします。

基本的に、すべてを独自に実行することが簡単になり、よりオブジェクト指向になります。

それが実際に優れているというわけではありませんが、現在では 2 番目のオプション スタイルでコードを記述することがより一般的になっています。

それが役立つことを願っています。

于 2012-05-18T23:08:24.827 に答える