Sin*_*a V 5 c# events delegates uml
我正在设计一个实体/组件系统,其中实体内通信的问题由事件消息系统解决。组件分为两部分,一部分位于实体中,另一部分位于子系统中,通过观察者类型系统保持同步。我正在尝试使用事件和委托来实现。
我正在尝试对应用程序的事件/消息系统的结构进行建模,但我在代理方面遇到了麻烦。现在的方式是一个图表(附后),显示系统中的委托、事件参数和实体,但是它们关系的本质仅表示为通用关联。我还有第二张图显示系统的接口。我需要显示这些对象中引发的事件,因为系统中最复杂的地方就在这里。
我知道我也需要动态协作和时序图,但我试图弄清楚我需要什么类型和多少个不同的事件支持类,以及继承结构是什么样子。我想给自己一个选择,我知道这些消息类型可以协同工作。我想我可以从这些预定义类型中选择一个 EventArgs 派生类型和委托类型,以便在动态图表绘制和组件构建时重用。
我不明白的主要问题是是否将事件建模为属性或操作。我一直在尝试使用委托的关联类和具有事件构造型的 OnSomeEvent() 类型操作。我不喜欢这样,因为事件不是操作。我已经使用 On****() 命名约定在代码中保护了方法。这种方法并未真正捕获委托签名、多播行为和观察者模式。
其他人使用什么方法来表达这些复杂且紧密耦合的类?对我来说,图表的目的是记录并更全面地理解系统中的接口。在我的流程的这个阶段,我希望冻结接口并继续实现组件本身。
我不会在静态类图中包含信号字符,因为信号(这就是事件的用途)是一种动态行为。我将按原样接受事件委托(即带有他们的签名)并将它们包含为类的普通操作。我认为这与对象能够非常恰当地发送事件并且指定事件的类型的想法相匹配。
哪些信号要去哪里以及谁订阅了谁应该在动态图中建模。
编辑:
您是否考虑过添加诸如<< event >>或<< signal >> 之类的刻板印象来对类上的属性进行分类?
| 归档时间: |
|
| 查看次数: |
7577 次 |
| 最近记录: |