在我看來,它歸結爲類實例化部分代碼的易用性。 如果你有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個參數是可選的,它成爲一個有點難以閱讀,那麼我認爲無論使用單獨的吸氣劑/ setter方法是更可讀的,或者一個paramater對象(模仿命名參數)
//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);
來源
2010-11-11 09:46:18
Les
你*通常*或平均需要多少這些參數?當它不是你在對象構建時需要的信息時,你應該對你真正需要的屬性分別進行調用。 – poke 2010-11-11 08:31:14
好吧,我只需要第一個。其餘參數基本上是對象的風格。當我第一次開始上課的時候,儘管允許班級的用戶使用所有不同的風格設置來構建一個好主意,但是現在我認爲這已經不再理想,因爲簽名太長了。 – TheDarkIn1978 2010-11-11 09:47:39
這是一個很好的問題,我發現有多層次的繼承有一種方法來增加提供給構造函數的參數。我討厭它,但對我來說沒有明顯的解決方案。我希望有人可能列出了一個設計模式來幫助。 – Allan 2010-11-11 12:56:41