Существует модель данных (набор классов ) которая не поддерживает нотификации.
Модифицировать модель и внутренюю бизнесс логику не возможно.
Модель умеет сериализоватся в собственный формат.
Persistent индефикации нет, но есть поле имени объекта которое по идее можно использовать.
Требуется: симулировать Observable model т.е. поддержку полноценного change notification
а так же механизм undo\redo.
Пока что кроме построения полного diff (которое за n^2 в худшем случае вроде ) ничего в голову не приходит.
Есть идеи или ктонибудь сталкивался ?
29.01.08 00:08: Перенесено модератором из '.NET' — TK
Здравствуйте, Аноним, Вы писали:
А>Требуется: симулировать Observable model т.е. поддержку полноценного change notification А>а так же механизм undo\redo.
А>Пока что кроме построения полного diff (которое за n^2 в худшем случае вроде ) ничего в голову не приходит. А>Есть идеи или ктонибудь сталкивался ?
Смотря на чем написано.
Случай трудный, но может спасти АОП. Т.е. даже не имея исходников, можно перехватывать методы и свойства, и таким образом и события при изменении свойств генерить, и все тому подобное. Естественно, это не панацея и потенциально может принести свои проблемы (сложность, например).
На опушке за околицей мужики строили коровник.
Работали споро и весело. Получалось х**во.
Re[2]: NonObsevable model
От:
Аноним
Дата:
23.01.08 14:00
Оценка:
A>Смотря на чем написано.
Да, именно. Написанно на с++. Но для всего есть обертки в c#.
Так что AOP отпадает
Здравствуйте, Аноним, Вы писали:
А>Существует модель данных (набор классов ) которая не поддерживает нотификации. А>Модифицировать модель и внутренюю бизнесс логику не возможно. А>Модель умеет сериализоватся в собственный формат. А>Persistent индефикации нет, но есть поле имени объекта которое по идее можно использовать.
А>Требуется: симулировать Observable model т.е. поддержку полноценного change notification А>а так же механизм undo\redo.
Не совсем понятно, за какими изменениями необходимо следить и в какой момент времени (изменение объектов, находящихся в памяти или при сериализации). По-подробней можно?
Re[2]: NonObsevable model
От:
Аноним
Дата:
23.01.08 14:23
Оценка:
Здравствуйте, hugo, Вы писали:
H>Не совсем понятно, за какими изменениями необходимо следить и в какой момент времени (изменение объектов, находящихся в памяти или при сериализации). По-подробней можно?
изменения в памяти. примерно как INotifyPropertyChanged и INotifyCollectionChanged
про сериализацию я рассказал как вариант для Undo\Redo возможно
Здравствуйте, Аноним, Вы писали:
А>изменения в памяти. примерно как INotifyPropertyChanged и INotifyCollectionChanged А>про сериализацию я рассказал как вариант для Undo\Redo возможно
Из твоего ответа akarinsky я так понял, что объекты вообще меняются не из кода на .НЕТ, поскольку, хотя и есть обертки для С++ классов, но заюзать АОП почему-то не получится. Вобщем, опять не понятно, что и как работает
Re[4]: NonObsevable model
От:
Аноним
Дата:
24.01.08 07:26
Оценка:
Здравствуйте, hugo, Вы писали:
H>Из твоего ответа akarinsky я так понял, что объекты вообще меняются не из кода на .НЕТ,
Да так и есть. У объектов есть внутренее взаимодействие в С++ коде
H>поскольку, хотя и есть обертки для С++ классов, но заюзать АОП почему-то не получится.
А каким образом обертки помогут AOP ?
Имхо, единственный не читерский варинат -- своя максимально тонкая обертка над этой моделью.
Можно Command'ы куда-нибудь приплести (для UndoRedo помогают).
Если модель большая (кол-во классов) но однообразная и есть/реально составить хоть в каком-то виде ее описание (XML), код Обертки, имхо, имеет смысл генерить (XSLT)