我现在研究Onion Architecture已经有一段时间了,我已经分析了几个样本VS的解决方案,但仍然无法理解Core
和{{1}之间的差异} Domain
。
Onion Architecture
由Core
和Domain
组成。 Services
分为Core
和Core.Application
我完全糊涂了。你能解释一下这个架构中Core.Domain
和Core
之间的实际差异吗?
我有这样的课程。简单的棋盘游戏,如井字游戏。它绝对是无处不在的语言,所以我应该在Domain内的Domain
文件夹中创建吗? Core中的域名本身?
Entities
答案 0 :(得分:6)
在我看来,只要您遵循Onion Architecture
的指南,项目的实际命名就不那么重要了。它更多的是关于构建项目以便轻松使用它并推理它。
拥有独立的对象模型非常重要。然后围绕该模型构建应用程序。
我完全糊涂了。你能解释一下,Core和Domain在这种架构中的实际区别是什么?
您可以将Core
视为您应该独立的架构中心模型的每个方面的集合。在Post about Onion Architecture中Application Core
有Domain Model
,其中包含Domain Services
,Application Services
和Core
。这取决于您的项目Application Services
中的内容。也许在你的情况下,没有必要介绍Domain Entities
。
总而言之,构建您的解决方案,让您和其他人轻松推理。让解决方案中的结构成为使用该项目的其他人的指南。我的意思是,如果有人必须在项目中实现新功能,那么解决方案应该指导他应该放置的位置Onion Architecture
等。
我最后一个想法,比构建(命名)项目最重要的是继续关注-(UIImage *)resizeImage :(UIImage *)theImage :(CGSize)theNewSize {
UIGraphicsBeginImageContextWithOptions(theNewSize, NO, 1.0);
CGFloat height = theImage.size.height;
CGFloat newHeight = 0;
newHeight = (theNewSize.width * height) / theImage.size.width;
newHeight = floorf(newHeight);
NSLog(@"new height image %f", newHeight);
[theImage drawInRect:CGRectMake(0, 0, theNewSize.width, newHeight)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
作为described here
答案 1 :(得分:1)
要加上Arkadiusz K的观点,即Core是一个重载术语,在DDD语音中,Core Domain也可以用作(支持/通用)子域。也就是说,您有一个或几个关键域是您的核心业务,其他域是辅助的,可以外包或作为现成的解决方案购买。
解决方案空间中的域和子域对应关系是有界上下文,这些可以在代码中表示为命名空间。这可能是一些例子的作者想到的。