Шаблон проектирования объектов значения во Flex - PullRequest
2 голосов
/ 20 июня 2011

Я просто ищу шаблоны дизайна, используемые во Flex. Пожалуйста, расскажите мне о шаблоне проектирования объекта значения и как он реализован во Flex. Спасибо.

Ответы [ 3 ]

4 голосов
/ 20 июня 2011

Объект-значение - это не что иное, как объект данных.На мой взгляд, нормально иметь несколько методов для объекта-значения ... но они существуют для удобства и на самом деле не добавляют никакого поведения.Например, вот пример VO:

[Bindable]
public class PersonVO {
    public var firstName:String;
    public var lastName:String;

    public function PersonVO(firstName:String, lastName:String) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public function clone():PersonVO {
        return new PersonVO(firstName, lastName);
    }
}

Обратите внимание, что этот класс является изменяемым по умолчанию, поэтому я добавил тег [Bindable].Вы, вероятно, захотите использовать привязку данных с этим классом, и вам нужно [Bindable] (или некоторый эквивалент), чтобы это произошло.

Во многих случаях я предпочитаю объекты с неизменяемыми значениями.Вот как бы вы реализовали изменяемый VO:

public class PersonVO {
    private var _firstName:String;
    private var _lastName:String;

    public function PersonVO(firstName:String, lastName:String) {
        _firstName = firstName;
        _lastName = lastName;
    }

    public function get firstName():String { return _firstName; }
    public function get lastName():String { return _lastName; }
}
2 голосов
/ 20 июня 2011

A VO аналогичен bean-компоненту, если вы из Java-фона. Я бы закодировал VO как

public class UserVO
{
     private var _name:String;

     public function set name(value:String):void
     {
          _name = value;
     }

     public function get name():String
     {
           return _name;
      }
}

Здесь мы объявляем закрытые переменные и предоставляем методы установки и получения, чтобы установить значение для переменных-членов. Хотя это не рекомендуется, вы можете выполнить проверку диапазона перед назначением значений в методе установки. Вы можете получить доступ к членам как:

var userVo:UserVO = new UserVO();
userVo.name = "some name";
0 голосов
/ 20 июня 2011

Стоит взглянуть на следующий сайт: http://www.flashmonkey.co.uk/using-value-objects-in-flash/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...