Longyue Li

Results 3 comments of Longyue Li

已在 #224 实现(借鉴了本PR的代码,已添加合作者), 故关闭此PR

选if-else还是状态机,问题复杂度及看代码的实现思路. 如果按照上面的示例,Move的职责就是**根据判断条件创建下一个状态并在最终状态内部干所有的活**.可能if-else更好理解一些,省去不必要的“空”中间态. ```go func New(* ShardingSelector) (Merger, error) { // 有groupby且groupby的键为分片键,有聚合函数,没有having字句,有order by字句 if s.HasOrderBy && s.HasShardingKey && s.HasAggregate && !s.HasHaving && s.HasOrderBy { return GroupByShardingKeyAggregateNoHavingOrderByState{}.GetMergerType, nil } // ...... }...