Возврат сервисного объекта - PullRequest
2 голосов
/ 21 августа 2011

Вот небольшая проблема, которая, как я предполагаю, всплывает в ALOT в RIA, особенно в Flex / AS3. Позвольте мне объяснить, давайте предположим, что у нас есть сложный объект Car.

Car
{
   name:String;
   creationDate:Date;
   engineSize:String;
   pastOwners:Array;
   maintenenceOperations:Array
}

Теперь допустим, что мое приложение обновляет объект Car, изменяя его имя и отправляя его в службу. Мой вопрос заключается в том, как вы справляетесь с возвратом объекта и обновлением объекта Car, присутствующего на стороне приложения. Вы делаете это и пишете шаблон для каждого класса? Как вы справляетесь, если свойство загружается лениво?

Я сделал это до написания кода обновления шаблона, я просто не хотел изобретать квадратное колесо, если есть лучший способ.

Был запрошен запрос примера метода обновления, так что вот оно. Он не завершен со всеми аспектами, но он отражает идею о том, что у вас есть существующий объект Car, и вы передаете ему новый объект службы для исправления различий.

[Bindable]
[RemoteClass("com.stackoverflow.example")]
public class Car
{
    public var name:String;
    public var engineSize:String;
    public var maintenenceOperations:Array;
    public var owner:Owner;

    public function update( value:Car ):void
    {
        if( value != null )
        {
            this.name = value.name; 
            this.engineSize = value.engineSize;  
            if( this.owner != null )
            {
                this.owner.update( value );
            }
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

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

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

1 голос
/ 22 августа 2011

Короткий ответ, вам нужен какой-то идентификатор (уникальный), который относится к объекту.Когда сервер вернется, вы сможете просмотреть ассоциативный массив (Словарь) для идентификатора этого объекта и обновить соответствующие свойства.

Длинный ответ, действительно зависит от того, что вы пытаетесьвыполнить и как.Есть много ответов на этот вопрос, но вам решать, какой путь лучше всего подходит для вашего конкретного случая.

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