我见过这是各种代码库,并且想知道这是否普遍不受欢迎。
例如:
public class MyClass
{
public int Id;
public MyClass()
{
Id = new Database().GetIdFor(typeof(MyClass));
}
}
这通常不被认为是好的设计有几个原因,其中一些原因已经提到过,导致单元测试困难和处理错误困难。
我选择不这样做的主要原因是您的对象和数据访问层现在非常紧密地耦合,这意味着在原始设计之外对该对象的任何使用都需要大量的返工。举个例子,如果您遇到一个实例,您需要使用该对象而不分配任何值,例如保存该类的新实例,该怎么办?现在,您要么必须重载构造函数,然后确保所有其他逻辑处理这个新情况,要么继承并覆盖。
如果对象和数据访问是解耦的,那么您可以创建一个实例,然后不对其进行水合。或者,如果您有一个使用相同实体但使用不同持久层的不同项目,那么这些对象是可重用的。
话虽如此,我过去在项目中采取了更简单的耦合路径:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)