Pregunta

He diseñado una clase personalizada (o componente?) Que se extiende Sprite cuyo constructor tiene 15 parámetros. solamente se requiere que el primer parámetro, mientras que los 14 restantes tienen valores por defecto asignados. todos son necesarios.

cada uno de los parámetros, excepto para el primer parámetro requerido en realidad son los emisores de propiedad. la clase también contiene funciones setter y getter públicos, teniendo en cuenta los cambios de propiedad en tiempo de ejecución después de la construcción.

He escrito la clase en mi escritorio (27" pantalla) y se dio cuenta de que puede tener un problema cuando yo estaba usando la clase en mi 13" portátil - la sugerencias de código se extiende más allá de los bordes de la pantalla, ya que era demasiado tiempo.

¿es normal / mejores prácticas para incluir a los emisores opcionales como parámetros en el constructor cuando las funciones están disponibles setter, o en caso de emisores de siempre estar separado del constructor?

¿Fue útil?

Solución

En mi opinión se trata de la facilidad de uso en la creación de instancias de clases parte del código. Si usted tiene 14 parámetros que o bien todo listo o todos saltan entonces es probablemente la mejor solución.

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

Pero si algunos de los 14 parámetros son opcionales, se vuelve un poco difícil de leer, entonces creo que sea el uso de captador separada / set es más fácil de leer, o parámetro de un objeto (imitando parámetros con nombre)

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

Yo personalmente trato de usar modelos tanto como sea posible cuando se trabaja con "Vistas" Así que si su objeto es una Sprite y por lo tanto una vista. Tal vez el mejor enfoque podría ser:

var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top