我觉得我可能在做一些愚蠢的事情。
我已经运行了多年的 Linq to SQL 库,并在使用相同数据库的多个应用程序中使用它。不过,有很多事情我并不十分满意,而且我刚刚有了一个新项目。我认为在应用程序和 Linq to SQL 库之间放置一个业务逻辑层会很有帮助。问题是我设计得越多,看起来我只是想实现一些看起来就像 Linq to SQL 的东西。
例如,我决定应用程序应该有一个业务逻辑入口点。所以那个入口点(我称之为 MCP)在系统中有一个类的属性,这个属性有一个“列表”(可能是 IQueryable),其中包含相应表中的所有对象。听起来,看起来很像 Linq to SQL 数据上下文......另外,我觉得在每个现有对象周围都有一个额外的对象/访问器是为了隐藏“真实”对象而进行的大量额外输入。
所以正因为如此,我有点害怕我只是对我已经拥有的东西做了一个糟糕的重新实现。
另一方面,我希望改进一切的运作方式。例如,确保一个对象具有一个逻辑责任,而不是作为访问系统中其他任何东西的一种方式。(例如,CarCP 可能有 AddDriver(Person p) 的方法,但 Person 不一定有返回 CarCP 的方法。)
所以也许有这个中间层更好,但我只是设计得很糟糕?