我使用MVC框架(PHP)已经有一段时间了,我相信我非常理解分层分离的概念。
不管是谁,我说的是:
M =>模型,数据层;
V =>视图,应用程序的UI;
C =>控制器,处理业务逻辑和传入请求;
最近,我遇到了一些项目,这些项目通过使用其他层和扩展模型一来扩展这个概念。这些层使用服务、存储库、转换器、值对象、数据映射器等类。
我也理解DDD的基本概念,但是,我想知道上面提到的这种类型的体系结构是什么,如果这些额外的层与DDD和/或任何设计模式相关联,以及你们是否可以共享一些资源(博客帖子、书籍、视频等等),从这个社区的其他用户那里学习这些东西。
作为参考
为什么下面的代码片段使用非静态代码来运行程序?以这种方式运行程序有什么好处吗?
public static void main(String[] args) {
Main go = new Main();
go.start();
}
public Main() {
}
public void start() {
//SOME CODE HERE
}
我正在做一个涉及版本化实体的项目,这样用户修改的整个历史都会被存档。
基本上,这个想法是在创建实体时,其内容的版本1也保存在存档表中。每当实体被修改时,增量版本也会被存储。
将实体的状态保存到存档表是由ArchiveService处理的。
当实体被持久化时,需要调用ArchiveService来创建版本1,因此最合乎逻辑的方法似乎是从存储库中调用它,从而将服务作为依赖项传递给存储库:
public class Repository {
private ArchiveService archiveService;
public Repository(ArchiveService