4
有什么方法可以避免域类和SQL查询之间的逻辑重复?
下面的示例完全是人为的,其唯一目的是使我理解我的观点。 假设我有一个SQL表: CREATE TABLE rectangles ( width int, height int ); 域类: public class Rectangle { private int width; private int height; /* My business logic */ public int area() { return width * height; } } 现在假设我有一个要求向用户显示数据库中所有矩形的总面积。我可以通过获取表的所有行,将它们变成对象并对其进行迭代来做到这一点。但这看起来很愚蠢,因为我的桌子上有很多矩形。 所以我这样做: SELECT sum(r.width * r.height) FROM rectangles r 这很容易,快速并且利用了数据库的优势。但是,它引入了重复的逻辑,因为我的域类中的计算也相同。 当然,对于这个例子,逻辑的重复根本不是致命的。但是,我的其他域类也面临同样的问题,它们更为复杂。