NonObsevable model
От: Аноним  
Дата: 23.01.08 13:23
Оценка:
Существует модель данных (набор классов ) которая не поддерживает нотификации.
Модифицировать модель и внутренюю бизнесс логику не возможно.
Модель умеет сериализоватся в собственный формат.
Persistent индефикации нет, но есть поле имени объекта которое по идее можно использовать.

Требуется: симулировать Observable model т.е. поддержку полноценного change notification
а так же механизм undo\redo.

Пока что кроме построения полного diff (которое за n^2 в худшем случае вроде ) ничего в голову не приходит.
Есть идеи или ктонибудь сталкивался ?

29.01.08 00:08: Перенесено модератором из '.NET' — TK
Re: NonObsevable model
От: akarinsky Россия  
Дата: 23.01.08 13:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Требуется: симулировать Observable model т.е. поддержку полноценного change notification

А>а так же механизм undo\redo.

А>Пока что кроме построения полного diff (которое за n^2 в худшем случае вроде ) ничего в голову не приходит.

А>Есть идеи или ктонибудь сталкивался ?

Смотря на чем написано.
Случай трудный, но может спасти АОП. Т.е. даже не имея исходников, можно перехватывать методы и свойства, и таким образом и события при изменении свойств генерить, и все тому подобное. Естественно, это не панацея и потенциально может принести свои проблемы (сложность, например).
На опушке за околицей мужики строили коровник.
Работали споро и весело. Получалось х**во.
Re[2]: NonObsevable model
От: Аноним  
Дата: 23.01.08 14:00
Оценка:
A>Смотря на чем написано.

Да, именно. Написанно на с++. Но для всего есть обертки в c#.
Так что AOP отпадает
Re: NonObsevable model
От: hugo Австрия  
Дата: 23.01.08 14:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Существует модель данных (набор классов ) которая не поддерживает нотификации.

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

А>Требуется: симулировать Observable model т.е. поддержку полноценного change notification

А>а так же механизм undo\redo.

Не совсем понятно, за какими изменениями необходимо следить и в какой момент времени (изменение объектов, находящихся в памяти или при сериализации). По-подробней можно?
Re[2]: NonObsevable model
От: Аноним  
Дата: 23.01.08 14:23
Оценка:
Здравствуйте, hugo, Вы писали:

H>Не совсем понятно, за какими изменениями необходимо следить и в какой момент времени (изменение объектов, находящихся в памяти или при сериализации). По-подробней можно?


изменения в памяти. примерно как INotifyPropertyChanged и INotifyCollectionChanged

про сериализацию я рассказал как вариант для Undo\Redo возможно
Re[3]: NonObsevable model
От: hugo Австрия  
Дата: 23.01.08 14:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>изменения в памяти. примерно как INotifyPropertyChanged и INotifyCollectionChanged

А>про сериализацию я рассказал как вариант для Undo\Redo возможно

Из твоего ответа akarinsky я так понял, что объекты вообще меняются не из кода на .НЕТ, поскольку, хотя и есть обертки для С++ классов, но заюзать АОП почему-то не получится. Вобщем, опять не понятно, что и как работает
Re[4]: NonObsevable model
От: Аноним  
Дата: 24.01.08 07:26
Оценка:
Здравствуйте, hugo, Вы писали:

H>Из твоего ответа akarinsky я так понял, что объекты вообще меняются не из кода на .НЕТ,

Да так и есть. У объектов есть внутренее взаимодействие в С++ коде

H>поскольку, хотя и есть обертки для С++ классов, но заюзать АОП почему-то не получится.

А каким образом обертки помогут AOP ?
Re[5]: NonObsevable model
От: Аноним  
Дата: 28.01.08 07:53
Оценка:
up
Re: NonObsevable model
От: ylem  
Дата: 28.01.08 08:35
Оценка:
Имхо, единственный не читерский варинат -- своя максимально тонкая обертка над этой моделью.
Можно Command'ы куда-нибудь приплести (для UndoRedo помогают).
Если модель большая (кол-во классов) но однообразная и есть/реально составить хоть в каком-то виде ее описание (XML), код Обертки, имхо, имеет смысл генерить (XSLT)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.