UML-моделирование функций / классов обратного вызова - PullRequest
0 голосов
/ 09 сентября 2010

Я не эксперт по UML, я только прошел курс обучения, который потратил значительное количество времени на UML-моделирование.Я понимаю основы, но я работал над проектом на днях, и для собственного любопытства мне было интересно, как вы смоделируете обратный вызов.Вот часть кода, над которым я работал


class OnChangeHandler():

    def my_init(self, rem, loc):
        self.remotes = rem
        self.locals = loc

    def process_IN_CREATE(self, event):
        #Do some work

    def process_IN_MODIFY(self, event):
        #Do some other work


class Watch():
    def __init__(self):

        self.wm = WatchManager()
        self. notifier = AsyncNotifier(self.wm, OnChangeHandler(loc=self.locals, rem=self.remotes))

Я, очевидно, использую фреймворк, поэтому я предполагаю, что мой вопрос сводится к тому, как бы вы моделировали сложные отношения там, где вы работаетемодули и рамки черного ящика?Разве это даже не стоит тратить время на?Но если так, разве большинство программ не построено в рамках?Я обнаружил, что модели классов UML действительно полезны, когда мы учились, но сейчас я просто растерялся.

Ответы [ 2 ]

0 голосов
/ 25 января 2015

Только для записи.Можно просто смоделировать методы регистрации и вызова в классе.OTOH, если кто-то хочет иметь больше абстракции для соответствия компонентам структуры и стереотипам, может быть использовано, например, путем расширения метакласса Interface стереотипом Event и Callback.

0 голосов
/ 09 сентября 2010

Вы можете полностью изменить структуру, полностью изменив класс .class, чтобы получить диаграмму классов.

См. Пример обратной структуры на: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html Диаграмма классов даст представление о структуре приложения и его архитектуре.

Диаграмма последовательности также возможна для того, чтобы понять, что происходит при запуске приложения.Это помогает лучше понять, как класс .java может взаимодействовать с каркасным классом .class.См. Пример по адресу: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html#3.Sequence_Diagram_reverse_engineering Это очень полезно, если вам нужно добавить новый код и повторно использовать существующий скомпилированный код.

Надеюсь, это поможет.

...