Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 域抽象中的Bean验证_Java_Domain Driven Design_Clean Architecture - Fatal编程技术网

Java 域抽象中的Bean验证

Java 域抽象中的Bean验证,java,domain-driven-design,clean-architecture,Java,Domain Driven Design,Clean Architecture,我一直在读R.C.马丁的《清洁建筑》 我试图通过开发一个小项目来理解它,我试图应用它的概念。 域层中的一个核心概念是不使用框架、第三方库,避免@annotation,只是将域中的类变成纯POJO 我想知道两件事。 从概念上讲,在域层内进行“实体”验证是否正确?如果是这样,使用Bean验证将是一个合理的选择,因为它是java本身的规范?POJO域(业务)对象的任务是忠实地表示内容的值,并维护其所代表信息的完整性。验证任何数据输入都是其中的关键部分。防止错误输入是域POJO的主要工作 因此,是的,使

我一直在读R.C.马丁的《清洁建筑》

我试图通过开发一个小项目来理解它,我试图应用它的概念。 域层中的一个核心概念是不使用框架、第三方库,避免@annotation,只是将域中的类变成纯POJO

我想知道两件事。 从概念上讲,在域层内进行“实体”验证是否正确?如果是这样,使用Bean验证将是一个合理的选择,因为它是java本身的规范?

POJO域(业务)对象的任务是忠实地表示内容的值,并维护其所代表信息的完整性。验证任何数据输入都是其中的关键部分。防止错误输入是域POJO的主要工作

因此,是的,使用框架来帮助忠实地正确表示域数据是非常有意义的

对框架和库的警告不应被误解为简单且字面上没有框架/库。该建议的目的是不要将域POJO的内部与应用程序复杂性的外部世界纠缠在一起。域POJO应该不知道它是如何使用的。因此,您应该能够从该应用程序的代码库中提取域POJO类,并将其放入任何其他应用程序的代码库中,而无需进一步编程。域对象应该是不可知的,并且不知道在其中使用它的应用程序

避免这种不必要的混乱交织是“干净”与“脏”架构的区别。应用程序的每一部分都应该专注于自己的责任,完成应用程序其他部分无法完成的工作,并尽可能少地受到应用程序其他部分的干扰或纠缠

Bean验证实现库由您的域POJO在内部使用,除了加载Bean验证实现所需的配置之外,不需要考虑外部应用。这种情况是完全合理的,并没有违反马丁的建议


例如,您的
客户
发票
、和
采购订单
类应该对您选择的a/flow体系结构、应用程序的某些事件总线协调部分、应用程序是内置的本地桌面应用程序还是内置的web应用程序一无所知

谢谢你的回复。我想确定我做对了。