首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有任何.NET程序“正确”使用构造函数?

是否有任何.NET程序“正确”使用构造函数?
EN

Stack Overflow用户
提问于 2009-05-29 15:41:03
回答 8查看 544关注 0票数 7

这在概念上与我的问题这里有关。然而,我一直在玩NHibernate,并且意识到我问题的真正核心是什么。

在典型的OO设计中,为了正确地封装数据,将值传递给存储在数据成员(字段)中的对象的构造函数是一种常见的模式。那些不应该更改的值只公开了访问器(只读属性)。允许更改的对象同时具有访问器和修改器(读-写属性)。在我看来,适当的 O/RM应该尊重这些约定,并在创建对象时使用可用的构造函数。依赖于读写属性、反射或其他hackish (IMHO)方法seems...wrong。

是否有一个.NET O/RM解决方案可以做到这一点?

编辑

为了解决Praveen的问题,我知道有些项目具有选择构造函数的“默认”算法--例如,StructureMap总是使用参数最多的构造函数,除非您用自定义属性标记构造函数。我认为这是一个有效的办法来处理这种情况。也许,除了ORM之外,使用IoC容器还会提供我需要的解决方案--尽管在我看来,这并不是本质上不好的,但对于使用ORM来说,这似乎是不必要的额外步骤。

EN

Stack Overflow用户

发布于 2009-05-29 15:55:38

这取决于您认为不应该更改的值。自动增量、计算列等都是很好的候选项。

当然,我使用我编写的ORM,如果您试图设置只读属性的值,它会引发异常。

更新:

记住,构造函数也用于持久化数据。让对象在构造函数中接受PK(s)是一种常见的模式,它将自动获取该记录。

票数 0
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/926668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档