时序图:
@startuml
'https://plantuml.com/sequence-diagramautonumber
title 条件表达式评估时序图participant Client
participant ExpressionEvaluatorService
participant ConditionTypeEnum
participant Parser
database "策略工厂" as StrategyFactory
participant "IConditionEvaluationStrategy" as StrategyInterface
participant "PriceConditionEvaluator" as PriceStrategyClient -> ExpressionEvaluatorService: evaluate(query)activate ExpressionEvaluatorServiceExpressionEvaluatorService -> ConditionTypeEnum: fromName(query.getPropertyName())
ConditionTypeEnum --> ExpressionEvaluatorService: conditionTypeEnum\n(包含条件类型和解析器类)ExpressionEvaluatorService -> Parser: parser.parse(query)
Parser --> ExpressionEvaluatorService: conditionObjectExpressionEvaluatorService -> StrategyFactory: getStrategy(conditionObject.getClass())
activate StrategyFactory
StrategyFactory --> ExpressionEvaluatorService: PriceConditionEvaluator 实例
deactivate StrategyFactoryExpressionEvaluatorService -> StrategyInterface: execute(conditionObject)
note right: 动态绑定到 PriceConditionEvaluator.execute()activate PriceStrategy
StrategyInterface -> PriceStrategy: 委托调用PriceStrategy -> PriceStrategy: 执行业务逻辑\n(使用 conditionObject 数据)
PriceStrategy --> StrategyInterface: 返回评估结果
deactivate PriceStrategyStrategyInterface --> ExpressionEvaluatorService: 评估结果
deactivate StrategyInterfaceExpressionEvaluatorService --> Client: 返回评估结果
deactivate ExpressionEvaluatorService@enduml