Frage

Ich habe eine benutzerdefinierte Klasse (oder Komponente?) Entwickelt, die Sprite, dessen Konstruktor hat 15 Parameter erweitert. nur der erste Parameter ist erforderlich, während die restlichen 14 Standardwerte zugewiesen werden. alle sind notwendig.

jeden der Parameter, mit Ausnahme der ersten erforderlichen Parameter sind tatsächlich Eigentum Setter. die Klasse auch öffentliche Setter und Getter-Funktionen, so dass für Eigenschaftsänderungen zur Laufzeit nach dem Bau enthält.

Ich habe die Klasse auf meinem Desktop geschrieben (27" Bildschirm) und erkennen ich ein Problem habe, wenn ich die Klasse wurde mit auf meinem 13" Laptop - das Code-Hinting wurde über die Ränder des Bildschirms erstreckt, wie es war zu lang.

ist es normal / best practice optional Etter als Parameter im Konstruktor zu schließen, wenn set-Funktionen zur Verfügung stehen, oder sollten Setter immer vom Konstruktor getrennt sein?

War es hilfreich?

Lösung

Meiner Meinung nach kommt es darauf Bedienung zu erleichtern bei der Klasse instanziierenden Teil des Codes. Wenn Sie 14 Parameter haben, dass Sie entweder ganz eingestellt oder alle überspringen, dann ist es wahrscheinlich die beste Lösung.

var defaultRectangle:Rectangle = new Rectangle(); //square of 1 x 1)    
var customRectangle:Rectangle = new Rectangle(0,0,  2,0  2,2,  0,2);

Aber wenn einige der 14 Parameter sind optional, es ist ein bisschen schwer lesen wird, dann denke ich, entweder die Verwendung separater Getter / Setter ist besser lesbar, oder ein Objekt Paramater (benannte Parameter imitiert)

//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;

Ich versuche persönlich Modelle so viel wie möglich zu verwenden, wenn mit „Ansichten“ working Also, wenn Ihr Objekt ist ein Sprit und damit eine Ansicht. Vielleicht könnte der beste Ansatz sein:

var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top