Начнем с примера:

package
{
    public class AllMightyClass
    {
        public var _value0:String;
        public var _value1:Array;
        public var _value2:int;
        public var _value3:Object;
        
        public function AllMightyClass(params:Object)
        {
            _value0 = params.value0;
            _value1 = params.value1;
            _value2 = params.value2;
            _value3 = params.value3;
        }
    }
}
// Вызываем так!
var amclass:AllMightyClass = new AllMightyClass(
//редактор кода предлагает ввести параметры так: AllMightyClass(params:Object)

Это очень не удобно! Поэтому есть ко всем вам предложение делать так:

// Сделаем мы класс который будет содержать в себе все переменные необходимые для другого класса!
package
{
    public class AllMightyClassVO
    {
        public var value0:String;
        public var value1:Array;
        public var value2:int;
        public var value3:Object;
        public function AllMightyClassVO(value0:String, value1:Array, value2:int, value3:Object)
        {
            this.value0 = value0;
            this.value1 = value1;
            this.value2 = value2;
            this.value3 = value3;
        }
    }
}
// Используйте этот класс в принимаемых параметрах
package
{
    public class AllMightyClass
    {
        public var value0:String;
        public var value1:Array;
        public var value2:int;
        public var value3:Object;
        
        public function AllMightyClass(valueObject:AllMightyClassVO)
        {
            this.value0 = valueObject.value0;
            this.value1 = valueObject.value1;
            this.value2 = valueObject.value2;
            this.value3 = valueObject.value3;
        }
    }
}
// Теперь мы вызываем так
var amclass:AllMightyClass = new AllMightyClass(
//Редактор кода на предлагает так: AllMightyClass(valueObject:AllMightyClassVO)
// Теперь напишем чуть-чуть дальше)))
var amclass:AllMightyClass = new AllMightyClass(new AllMightyClassVO(
//редактор кода теперь предлагает так: AllMightyClassVO(value0:String, value1:Array, value2:int, value3:Object)

+ комфортность + разборчивость кода!

4 Responses to “Про конструкторы”

  1. Когда как. Посмотри gTween – там например именно объекты удобнее, так как параметров много. на 4 аргументах терпимо. А вообще в большинстве случаев больше чем 2-3 параметра конструктору быть нужно не должно.

  2. Долго искал эту тему, благодарю :)

  3. А смысл? Тогда проще уж сразу в конструкторе основного класса принимать нужные параметры, чем классы так плодить.

  4. Просто такой способ принятия параметров, через обжект, очень динамичен.

Leave a Reply