CRUD的一些好的设计模式是什么?

6

我正在处理一些数据实体,它们可以被创建、读取、更新和删除,但我发现自己为它们写了更多或更少相同的代码。例如,有时我需要将数据输出为JSON格式,有时需要以表格格式输出。我发现自己需要编写两种不同类型的视图来导出数据。此外,在数据库中创建这些实体通常只有SQL语句和输入参数不同。

我考虑创建一个策略模式来表示不同的“上下文”。例如,AJAX上下文的read()方法将返回JSON格式的数据。然而,我想知道其他人是否曾经遇到过这个问题,并想知道用于CRUD操作的常用设计模式是什么。

编辑:值得注意的是,有时会使用复合实体来组成一个整体;例如,一个位置可以有许多描述,每种语言支持一种描述。

3个回答

4

CRUD没有一个单一的模式,有许多重叠/竞争的模式。其中一个最好的CRUD模式来源是:

Martin Fowler的企业应用架构模式

一般来说,解决这个问题的最佳方式是使用ORM(假设关系型数据存储,这在这种情况下似乎是一个安全的假设):

http://en.wikipedia.org/wiki/Object-relational_mapping

至于通过视图公开对象,也有一些框架可以帮助解决,但这些框架特定于您的编码环境,而您没有指定。


Fowler的网站目前似乎无法访问。 - Michael Maddox
哪种模式或ORM? - Yousha Aleayoub

2
不是一个固定的答案,抱歉。但我建议使用ORM系统(仓库模式)作为数据库接口。JPAHibernateiBatis等。你将不再需要编写任何SQL语句。
如果你想要最小化编写的代码量,可以尝试使用Grails框架。(只需约30行代码即可编写完整的CRUD网站。)你不再需要编写任何样板代码。

1

检查ODATA(http://www.odata.org)-它具有相当不错的HTTP CRUD设置,包括将批量更新推送到服务器的机制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接