How to represent “event” in a UML Class Diagram?

2020-07-06 02:05发布

问题:

This is my code snippet

public class Notation : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private Notes _note;
}

How to write public event PropertyChangedEventHandler PropertyChanged; in UML Class diagram properly?

First, I think it's :

+PropertyChanged: PropertyChangedEventHandler

But then, I realized that it doesn't represent the event part of the code.

Any idea? Thanks

回答1:

Here is the UML stereotype in the game. Just stereotype this property:

Note that _note is a plain, private property.



回答2:

You can define receptions in class definition. Reception is type of behavioral feature. If you define it, instance of class can accept signal events from environment. Other way to define events in UML is using behavioral diagrams. Activity diagram has event element to accept events of specific types during execution. State Machine diagram has transitions with trigger definition, which represents event acceptance as well. Interaction diagram represents events as receiving or sending messages. Behavior definitions (represented by behavioral diagrams) can be assigned to class definition as classifier behavior or owned behaviors. Owned behavior definition defines ability of owning class to react on event occurrences.

Your example just defines attribute of class, but not ability to accept event by class instance.