ActionScript - параметры установки в конструкторе? - PullRequest
2 голосов
/ 11 ноября 2010

Я разработал собственный класс (или компонент?), Который расширяет Sprite, конструктор которого имеет 15 параметров. требуется только первый параметр, а оставшимся 14 назначены значения по умолчанию. все нужно.

каждый из параметров, кроме первого обязательного параметра, фактически является установщиком свойств. класс также содержит общедоступные функции установки и получения, позволяющие изменять свойства во время выполнения после построения.

Я написал этот класс на своем рабочем столе (27-дюймовый экран) и понял, что у меня могут возникнуть проблемы, когда я использую этот класс на своем 13-дюймовом ноутбуке - подсказка кода распространялась по краям экрана, как и прежде. слишком долго.

Это нормальная / лучшая практика включать дополнительные конструкторы в качестве параметров в конструктор, когда доступны функции сеттера, или они всегда должны быть отделены от конструктора?

1 Ответ

2 голосов
/ 11 ноября 2010

По моему мнению, все сводится к простоте использования в части кода, которая создает экземпляр класса. Если у вас есть 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;

Я лично стараюсь максимально использовать Модели при работе с «Представлениями» Так что, если ваш объект - это Sprite и, следовательно, View. Возможно, лучшим подходом может быть:

var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...