0

私は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クラスモデルが非常に役立つことがわかりましたが、今は混乱しています。

4

2 に答える 2

0

記録のためだけに。クラスでのコールバック登録と呼び出しのメソッドをモデル化するだけで済みます。フレームワークのコンポーネントとステレオタイプに一致するように抽象化を強化したい場合は、たとえば、イベントとコールバックのステレオタイプを使用してインターフェイスメタクラスを拡張することにより、OTOHを使用できます。

于 2015-01-24T22:10:07.867 に答える
-1

クラス図を取得するために.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 新しいコードを追加し、既存のコンパイル済みコードを再利用する必要がある場合に非常に便利です。

お役に立てれば。

于 2010-09-09T08:58:56.307 に答える