java - java+spring应用程序中如何使用设计模式排列文件结构
问题描述
我创建了一个 Web 应用程序,它从控制台获取用户数据并将数据存储在 MongoDB 中,并使用 Spring rest api 将数据传递给 Angular 前端。
整个系统运行良好,现在我想根据设计模式重新排列文件夹结构,如下所示我尝试使用 MVC 模型但我不确定文件重新排列是否正确我对设计模式不太了解. 所以请帮我解决这个问题,如果下面的结构有误,请帮我改正。
控制器
BookController - 带有 rest api 的类,用于将数据传递到 Angular 前端(REST 控制器类)
模型
Book - 具有变量和相关方法的父类
Novel - 具有变量和相关方法的
子类 Poems - 具有变量和相关方法的子类
MyBookManager - BookManager 接口实现类,其中包括与 mongoDB 的 crud 操作
看法
BookManager - 与 MyBookManager 相关的接口
Console - 从控制台获取用户输入并调用 MyBookManager 中的方法以将其保存到 DB 的类
存储库
BookRepository - 扩展 MongoRepository 的接口
剩余课程
BookStoreApplication - 包含主要方法的类(运行类)
ErrorHandle - 包含验证方法的类
解决方案
班级整体安排不错。我可以建议的唯一调整是在 Controller 包中移动 BookManager 和 MyBookManager。原因是因为它在视图(Console)和模型(数据库)之间,它可以改变模型(通过更新数据库),它可能包含一些关于如何正确解析用户输入的业务逻辑。
如果您想进一步将 BookManager 与 Controller 解耦,则可以将其称为 BookService 并将其放置在名为 Service 的包中(连同 MyBookService)。
关于设计模式,MVC 是一种架构模式,而不是设计模式。我将您链接到其他问题以获取更多信息:
推荐阅读
- python-3.x - 如何将模拟 @patch 装饰器与本地导入的库一起使用?
- appsync-apollo-client - 在 apollo-client 中执行带有 optimiticResponse 的突变时,如何绕过“Missing field”警告?
- aws-lambda - 使用 AWS Api Gateway 时返回错误错误
- asp.net-core - 用户定义结构的属性未在 .NET Core 3.0 Web API 中反序列化(适用于 .NET Core 2.2)
- coldfusion - 语法奇怪的内存不足增量运算符
- javascript - 将 Javascript 数组转换为 JSON 对象
- amazon-web-services - 使用 Systems Manager 在 Windows EC2 实例上运行 AWS CLI 命令
- c# - 为什么自定义运行设置文件上的代码覆盖率返回排除的路径
- python - 将 Python timedelta 对象映射到数值区间
- sql - 即使在 group by 中不存在,如何检索数据?