# 《拼团交易平台系统》第2-2节:试算模型抽象模板设计

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/fEB5s (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

编程能力突飞猛进的成长,往往都来自于对复杂业务场景的拆分解耦和设计模式运用过程锻炼。虽然有时候是同样的业务,但不同的编程方式,带来的思维锻炼也是不同的。

就像 CRUD 的方式写代码,只能让你了解业务流程,但不会提高工程建模能力和编程思维的提升。所以整个小傅哥带着你做的项目,都会循序渐进的为你从模型设计解决业务场景问题出发。既可以提高你的编程思维,也能锻炼你的编码能力。

# 一、本章诉求

在一个工程中,随着不断地承接业务需求逻辑的实现,会有很多复杂场景需要解决。这个时候就会引入设计模式进行解耦和实现,提高工程代码的扩展性。

但随着开发的场景越来越多,在各个service实现中会存在相同的设计模式,如果是不同的人开发,那么一个责任链,一个规则树,也会有非常多的实现方式。那么这样就会导致后面在进入开发的人,对已存在的代码,维护的成本就越来越高了。

所以,本节小傅哥带着大家先做设计模式抽象模板的通用结构定义,添加一个 tree规则树抽象模型,在引入到工程中进行使用。这样后续工程中就可以不断的定义通用的设计模式被不同的场景统一使用了。

# 二、模型设计

这是一种链式的多分支规则树模型结构,由功能节点自行决定后续流程的执行链路。它的设计比责任链的扩展性更好,自由度也更高。

  • 首先,定义抽象的通用的规则树模型结构。涵盖;StrategyMapper - 策略映射器、StrategyHandler - 策略处理器、AbstractStrategyRouter<T, D, R> - 策略路由抽象类。通过泛型设计允许使用方可以自定义出入参和动态上下文,让抽象模板模型具有通用性。
  • 之后,由使用方自定义出工厂、功能抽象类和一个个流程流转的节点。这些节点可以自由组装进行流转,相比于责任链它的实现方式更具有灵活性。