我正在使用许多可以创建,读取,更新和删除的数据实体,我发现自己编写的代码大致相同.例如,我有时需要将数据输出为JSON,有时以表格格式输出.我发现自己编写了两种不同类型的视图来导出数据.此外,在DB中创建这些实体通常仅由SQL语句和输入参数不同.
我正在考虑创建一种策略模式来表示不同的"上下文".例如,AJAX上下文的read()方法将返回数据为JSON.但是,我想知道其他人是否事先处理过这个问题,并想知道CRUD操作通常使用的设计模式.
编辑:一个注意事项是,有时复合实体用于构成一个整体; 例如,一个位置可以有许多描述,每种支持语言一个.
CRUD 不存在单一的模式,有许多重叠/竞争的模式。这些 CRUD 模式的最佳来源之一是:
一般来说,解决这个特定问题的最佳方法是使用 ORM(假设有一个关系数据存储,在这种情况下这似乎是一个安全的假设):
http://en.wikipedia.org/wiki/Object-relational_mapping
至于通过视图公开对象,也有一些框架可以帮助实现这一点,但这些框架特定于您的编码环境,而您没有指定。