Business objects 好/坏的业务对象设计?
我继承了一套业务对象,它们工作得相当好。看起来它是基于CSLA框架的,但是有一个非常恼人的问题。当业务对象进行加载时,它会抛出一个异常。因此,如果它试图加载数据库中不可用的数据,则会引发异常。这是一个好的设计吗?IMHO,例外情况是指例外情况——丢失的数据通常不例外,除非它位于主键或其他非空字段上。IMHO,例外情况是指例外情况——丢失的数据通常不例外,除非它位于主键上,或其他非空字段。这取决于丢失的数据对应用程序的影响。如果没有这些数据,应用程序无法合理地继续,那么这是一个例外情况,例外情况是有保证的。如果数据丢失是相对正常的(尤其是如果调用方希望处理异常并继续),那么使用异常是一种糟糕的设计。这取决于丢失的数据对应用程序的影响。如果没有这些数据,应用程序无法合理地继续,那么这是一个例外情况,例外情况是有保证的。如果数据丢失是相对正常的(尤其是如果希望调用方处理异常并继续),那么这就是异常的使用,这是一个糟糕的设计。最近我与一位同事就这个话题进行了辩论 我的断言是,在一种情况下,您希望执行X的方法不执行X,这正是异常的定义 你选择如何处理这个例外是另一回事。您可以选择在代码中内部处理该异常,也可以选择将该异常的处理推迟到代码中的更高级别 我同意,如果在异常发生的时间和地点处理异常是有意义的,那么处理异常总是比将其延迟到更高级别的代码要好 也就是说,我还相信,在较低级别的代码中,将这些异常的处理推迟到较高级别的代码中是有意义的。这为更高级别的代码提供了处理这些情况的更大的灵活性,同时也为代码提供了更高级别的洞察 例如,如果您从数据库检索数据并构建一个对象以在应用程序中使用,您可能会遇到以下几种情况:Business objects 好/坏的业务对象设计?,business-objects,Business Objects,我继承了一套业务对象,它们工作得相当好。看起来它是基于CSLA框架的,但是有一个非常恼人的问题。当业务对象进行加载时,它会抛出一个异常。因此,如果它试图加载数据库中不可用的数据,则会引发异常。这是一个好的设计吗?IMHO,例外情况是指例外情况——丢失的数据通常不例外,除非它位于主键或其他非空字段上。IMHO,例外情况是指例外情况——丢失的数据通常不例外,除非它位于主键上,或其他非空字段。这取决于丢失的数据对应用程序的影响。如果没有这些数据,应用程序无法合理地继续,那么这是一个例外情况,例外情况是
注:我不是专家,我也不自称是专家,我是在与我讨论这个话题的同事的鼓励下分享我的观点。最近我与一位同事就这个话题进行了辩论 我的断言是,在一种情况下,您希望执行X的方法不执行X,这正是异常的定义 你选择如何处理这个例外是另一回事。您可以选择在代码中内部处理该异常,也可以选择将该异常的处理推迟到代码中的更高级别 我同意,如果在异常发生的时间和地点处理异常是有意义的,那么处理异常总是比将其延迟到更高级别的代码要好 也就是说,我还相信,在较低级别的代码中,将这些异常的处理推迟到较高级别的代码中是有意义的。这为更高级别的代码提供了处理这些情况的更大的灵活性,同时也为代码提供了更高级别的洞察 例如,如果您从数据库检索数据并构建一个对象以在应用程序中使用,您可能会遇到以下几种情况: