《GJJ-004 分析模式及实现》,umlchina.com/url/video.html
原图6.21
EA绘制
图6.21 使用账户查找方法。
使用单独的方法来查找输出账户以及计算会计事项的值。
PlantUML
@startuml
skinparam nodesep 100
skinparam ranksep 100
class 过账规则
class 方法
过账规则 "0..*" -- "1\n-计算" 方法
过账规则 "0..*" -- "1\n-账户查找器" 方法
@enduml
原图6.22
EA绘制
图6.22 事件图,展示了将账户查找器和资格条件方法添加到图6.14中的使用。
PlantUML
@startuml
start
-> 每个分录;
:添加分录;
:查找匹配的过账规则;
note right
过账规则.allInstances()->select(触发者=分录.账户)
end note
-> 每个过账规则;
if (满足过账规则资格条件) then (Y)
:查找输出账户;
-> 每个账户;
:做输出过账;
endif
stop
@enduml
(目前,PlantUML的活动图语法还不能完整表示书中原图以及EA版UML图的内容)
原图6.23
EA绘制
图6.23 将资格条件添加到上述规则。
PlantUML
@startuml
skinparam nodesep 120
skinparam ranksep 120
class 过账规则
class 方法
过账规则 "0..*" -- "1\n-计算" 方法
过账规则 "0..*" -- "1\n-账户查找器" 方法
过账规则 "0..*" -- "1\n-资格条件" 方法
@enduml
原图6.24
EA绘制
图6.24 使用账户过滤器的交互图。
PlantUML
@startuml
participant X
participant ":账户过滤器"
participant ":账户"
create ":账户过滤器"
X--> ":账户过滤器" : 创建
X-> ":账户过滤器" : 设置发生时间段
activate ":账户过滤器"
deactivate ":账户过滤器"
X-> ":账户" : 把过滤器用于分录(一个账户过滤器)
activate ":账户"
loop 每一个分录
":账户" -> ":账户过滤器" : 是否包括(一个分录)
activate ":账户过滤器"
deactivate ":账户过滤器"
end
destroy ":账户过滤器"
":账户" --> X : 分录集合
deactivate ":账户"
@enduml