2010-01-09 102 views
0

我想改进我的N_Tier拱对象映射 - 压扁属性,而不是对象引用

的知识BLL内部,并在情况下,我在BLL使用自定义业务对象,像CustomerInfo {FN,LS, ...},考虑我有Customer表和Currency表,Customer有一个默认货币,因此Customer表中有一个FK Currency_ID,在UI层,我们需要显示货币符号而不是Currency_ID。 (SELECT ... INNER JOIN ..)

我可以将货币符号作为CustomerInfo中的一个属性,而不是将CustomerInfo中的CurrencyInfo引用。

我觉得No是答案,但为什么?什么会变坏?

数据库中的每个业务表(不包括验证查找)是否映射到业务对象?

我认为业务对象(包含从DAL带来的数据的对象)应仔细映射到数据库中的表,这可以增加可维护性。但BLL可以包含任何用于业务操作和业务验证的对象。

请给我一些书籍标题,或链接掌握N层拱门和关于它的辩论。

感谢

回答

0

也许你应该阅读一些关于设计模式(在Wikipedia page on the subject链接,其中的一些)的许多优秀的书籍。特别是,您可能会发现数据传输对象(DTO)的概念很好。通常的做法是建立一个与您的数据库紧密映射的域模型,可能使用像(NHibernate,iBatis等这样的对象关系映射工具,然后再有一组转换器/适配器将它们转换为稍微平坦的对象(如您描述的CustomerInfo对象)更适合我们的应用程序显示和处理数据的方式。