领域结构组织分为三种:事务脚本模式、领域模式和表结构模式。
事务脚本模式
事务脚本模式通常是按照接口的行为而构建的,每个用户的操作都对应一组处理过程。在这种模式下,逻辑层接收到表示层传递下来的参数,通过一系列的处理,将数据保存到数据库,并从数据库获取一些数据加工处理之后返回给表示层。在处理过程中,还可能需要组装其他模块提供的接口。事务脚本模式非常类似脚本的执行,即接收输入,经过一系列的处理再输出结果。这是一种面向过程的模式。在设计时,会将通用的过程抽取出来形成公共调用模块。这种模式的优点是:
1.简单、易理解。这种模式是人人都懂的模式,在实施时对开发人员的要求比较低。
2.具有天然的隔离性。每个用户操作都对应一组处理过程,这些操作都被限定在了当前操作的上下文中。
这种模式的缺点也非常明显:
1.没有办法应对复杂场景。这种模式相当于在上帝视角做设计,需要把处理全部过程放入到一个流程中。当场景复杂时,架构往往会变得非常混乱。
2.有时很难抽取公共处理过程,造成大量重复代码。在这种模式中很容易遇到有些代码逻辑非常相似,可是又有些不同,在抽取公共方法的时候很费力。
3.不具有灵活的扩展性。
领域模型是面向对象的模式
它将逻辑拆分到了不同的对象中,在策略模式的驱动下使这些对象相互作用。面向对象是一种更自然的认识世界的方法。与事务脚本模式的显著区别是,领域模型是一些对象相互作从而影响用户操作,而事务脚本模式是通过一组处理过程响应用户的操作。大型复杂软件都是基于领域模型进行开发的。
这种模式的优点是:
1.能够应对复杂的业务场景。在领域模型中,问题域被划分成不同的限界上下文。在分析问题时,使用通用语言在当前限界上下文中进行分析。小的限界上下文降低了问题的复杂度。
2.高灵活性。领域模型都是高内聚低耦的,能够更加容易的应对变化。
3.抓住问题本质。通过领域模型能够构建行业软件。
这种模式的缺点是:
1.过于复杂,对研发人员要求很高。
2.需要领域专家的参与,不然很难得到正确的领域模型。
表结构模式
表结构模式是事务脚本模式和领域模式的折中方案。这种模式,将表结构映射成对象,并基于这些对象进行设计。这些对象要比领域模式中的对象更加单薄,而且它们都来自于数据表。
在设计过程中,可以根据问题的复杂度、开发人员的能力、开发软件的后续发展等从中选择模式。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
想高效系统的学习java编程语言,推荐大家关注一个微信公众号:java圈子。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套java入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!