首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PropertyInfoManager不像FieldManager那样包含在BusinessBase中?

为什么PropertyInfoManager不像FieldManager那样包含在BusinessBase中?
EN

Stack Overflow用户
提问于 2011-03-01 01:23:40
回答 1查看 291关注 0票数 1

我知道在BusinessBase中FieldManager是作为一个受保护的属性公开的。为什么PropertyInfoManager不是以同样的方式设置?据我所知,PropertyInfoManger维护了一个类型字典和每种类型的PropertyInfo列表。在BusinessBase中只维护一个PropertyInfo列表似乎更容易,类似于FieldManager的工作方式。在PropertyInfoManager中,要将注册的PropertyInfo与它们所属的类型联系起来,需要做大量的工作。

我相信这是有原因的,我只是看不到或理解得不够。我只是想了解更多关于CSLA的知识,以及为什么事情是这样构建的。

EN

回答 1

Stack Overflow用户

发布于 2011-03-01 02:29:32

我可以看到这样做的两个主要原因:

1)线程安全- PropertyInfoManager类基本上是一个围绕字典的静态包装器,它允许您为类型注册PropertyInfo(s)并获取类型的PropertyInfo(s)。它处理锁定以确保线程安全。

2) N级撤销- CSLA的这一功能增加了存储字段值的复杂性,受保护的FieldManager负责维护BusinessBase的所有托管支持字段的值。为此,FieldDataManager类需要访问该类型的PropertyInfo,因此将这些放在一个位置而不是从BusinessBase传递一些列表是一种更好的方法。

在这种情况下,FieldDataManager和PropertyInfoManager类增加了模块性,我确信在设计时受到了关注点分离(SoC)和单一责任原则的影响。

我也在学习里昂证券,在这样做的过程中,我从框架本身学到了相当多的面向对象设计知识。我推荐The Book和阅读The Source Code来继续学习更多关于CSLA .Net的知识。

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

https://stackoverflow.com/questions/5145276

复制
相关文章

相似问题

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