我有一个Contract类。合同有效期为2010年1月1日至2010年12月31日。
它可以处于Active或Passive状态,具体取决于我向实例询问其状态的日期。恩。如果我问2010年7月4日,它处于州活跃状态,但如果我问2011年1月1日,它就处于被动状态。
实例是使用构造函数依赖注入创建的,即它们在创建时已经是Active或Passive,不允许null作为内部状态成员的参数。
在UML状态机图中绘制一个初始/创建的顶点。 我有两个箭头,从最初的顶点引出,一个通向状态Active,另一个通向Passive。
这是UML中依赖注入的正确表示吗?
问题特别涉及状态机图,其中初始状态/顶点之后的第一个状态是在图的边界之外决定的。
Jude / Ashtah工具允许这些类型的构造,即从图的初始顶点绘制多条线,这使我相信它是正确的UML图形语法。
这与此有关 How model statemachine, when state is dependent on a function? 这引发了关于如何在UML中对DI进行建模的问题。
答案 0 :(得分:1)
您可以像我在其他问题中建议的那样解决状态部分,并且可以使用类图中的依赖关系来显示DI。
答案 1 :(得分:0)
我会说不。 要问的问题是: 类的主动和被动版本的类状态机/行为是否不同?
如果是,则在类对象下使用两个单独的状态机图,一个用于Passive,一个用于Active。
活动图可用于显示在创建类之前(通过使用连接)进行选择。
如果两个实例的行为相同,因此通过相同的状态,那么只需在Initial to first状态转换上放置一个标签以显示此状态,并在第一个状态中显示一个条目以显示它。
答案 2 :(得分:0)
依赖注入只是一个实现细节(即使它非常重要)。因此,在如何使用UML建模依赖注入的问题上,您可以将DI建模为关联,聚合或组合,具体取决于您希望用这些类表达的内容。