领域驱动设计之工厂

领域模型包含领域对象,也就是实体、值对象、领域服务。领域对象除了包含状态信息外,还包含必要的业务逻辑。

为了能够使用这些领域对象,就需要实例化这些领域对象。实例化领域对象可以采用两种方式:

1.通过调用领域对象的构造函数对其进行实例化,比如Order order=new Order();

2.通过调用领域对象的工厂方法对其进行实例化,比如Order order=Order.CreateFactory();

一般情况下我们通过构造函数实例化就可以了,采用工厂方法对其进行实例化通常在以下两种场景中:

1.如果领域对象的构造比较复杂时,可以将构造过程封装到工厂内,这样就能够避免调用方直接通过复杂的方式构造领域对象,减轻调用方的负担。

2.需要对调用方隐藏领域对象的构造逻辑,保护领域层。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

PHP弱类型在CTF中的应用

PHP作为世界上最好的语言(然而人生苦短,我用python),在CTF web题中大放异彩,深受出题人的喜爱。P神在对web题出题套路总结的第三条指出,出题人喜...

8385
来自专栏王磊的博客

三层业务类(DAL)必用的通用方法之一

  写代码有两年多的时间了,越来越觉得代码的通用性是衡量一个程序员的标准。 #region SqlDataReader => List /// <summary...

3568
来自专栏java一日一条

提高代码质量:如何编写函数

函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的。写好一个函数是提高程序代码质量最关键的一步。本文就函数的编写,从函数命名,代码分布,技...

672
来自专栏程序员互动联盟

【编程基础】C++ Primer快速入门之八:语句

1 定义: 语句就是我们说话,当然这里是指我们用计算机来说话--说人话。类似于自然语言中的句子。C++设计了简单的一句话语句,也设计了由一组语句组成的复杂语句-...

35911
来自专栏阿杜的世界

《Java 8实战》阅读笔记(1)

给方法listFiles传递方法引用**File::isHidden**

1164
来自专栏阿杜的世界

《Scala程序设计》阅读书摘

JVM上的语言越来越多了,从前几年的groovy、Scala和Clojure,现在又听说一门Kotlin。对于前三种语言,groovy算是JVM平台上的动态脚本...

902
来自专栏程序人生

谈谈面向对象编程

最近写了些和函数式编程的文章,有读者和我讨论函数式编程和面向对象编程的优劣。二者都是很好的编程思想,都在着力解决代码重用的问题,也彼此吸收对方的优点,所以大可不...

42611
来自专栏程序人生

来来来,咱们元编程入个门

前一篇文章竟然被很多人批「干货太少」 —— 一看你们就没有看过 Rich 他老人家的 Hammock Driven Development(我很久前推荐过滴),...

34010
来自专栏java一日一条

提高代码质量:如何编写函数

函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的。写好一个函数是提高程序代码质量最关键的一步。本文就函数的编写,从函数命名,代码分布,技...

1092
来自专栏iKcamp

翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 6 章:值的不可变性

原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 第 6 章:值的不可变性 在第 ...

2085

扫码关注云+社区

领取腾讯云代金券