ActionScript-コンストラクター内のセッターパラメーター?
-
08-10-2019 - |
質問
コンストラクターに15のパラメーターがあるスプライトを拡張するカスタムクラス(またはコンポーネント?)を設計しました。最初のパラメーターのみが必要ですが、残りの14にはデフォルト値が割り当てられています。すべてが必要です。
最初の必須パラメーターを除く各パラメーターは、実際にはプロパティセッターです。クラスにはパブリックセッターとゲッター機能も含まれており、建設後の実行時にプロパティの変更が可能になります。
デスクトップ(27 "スクリーン)にクラスを書きましたが、13インチのラップトップでクラスを使用しているときに問題があるかもしれないことに気付きました。コードのヒントは、長すぎたため、画面の端を通り過ぎていました。
セッター関数が利用可能な場合、コンストラクターにオプションのセッターをパラメーターとして含めることは通常/ベストプラクティスですか、それともセッターは常にコンストラクターから分離する必要がありますか?
解決
私の意見では、それはコードのインスタンス化部分のクラスで使いやすいことです。すべてを設定するか、すべてスキップする14のパラメーターがある場合、おそらく最良の解決策です。
var defaultRectangle:Rectangle = new Rectangle(); //square of 1 x 1)
var customRectangle:Rectangle = new Rectangle(0,0, 2,0 2,2, 0,2);
しかし、14のパラメーターの一部がオプションである場合、読みにくい場合、個別のゲッター/セッターの使用がより読みやすいか、パラメーターオブジェクト(名前付きパラメーターを模倣する)のいずれかと思います。
//which parameter means what?
var girlfriend:Girl = new Girl("Blue", 0, 0, "", "", 1.8, 0, "", 140);
//named parameters
var girlfriend:Girl = new Girl({eyeColor: "Blue", height:1.8, iq:140});
//setters
var girlfriend:Girl = new Girl();
girlfriend.eyeColor = "Blue";
girlfriend.height = 1.8;
girlfriend.iq = 140;
私は個人的に「ビュー」を使用するときにできるだけモデルを使用しようとしているので、あなたのオブジェクトがスプライトであり、したがってビューである場合。たぶん最良のアプローチは次のとおりです。
var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);
所属していません StackOverflow