【发布时间】:2009-09-30 18:57:01
【问题描述】:
我不明白为什么使用方法重载(在 BLL 层)优于使用具有单独名称的单独方法。
例如,如果我们的 Web 应用在 DAL 层有 GetAllArticles、GetArticlesByCategory、GetPublishedArticles 和 GetPublishedArticlesByCategory 方法用于从数据库中检索文章,那么建议在 BLL 层使用 GetArticles () 重载以调用所有上述 DAL 方法。
a) 但是为什么使用 GetArticles 重载优于使用(在 BLL 层)GetAllArticles、GetArticlesByCategory、GetPublishedArticles 和 GetPublishedArticlesByCategory 方法(这些方法会调用 DAL 的 GetAllArticles、GetArticlesByCategory、GetPublishedArticles 和 GetPublishedArticlesByCategory)?
也就是说,我意识到业务对象旨在抽象数据库模式并使它们更易于人类理解。但就我而言,如果我是 UI 开发人员,如果 BLL 层有方法 GetAllArticles、GetArticlesByCategory、GetPublishedArticles 和 GetPublishedArticlesByCategory,而不是 BLL 有 GetArticles,对我来说会容易得多 重载,因为只需查看方法的名称,我就可以确切地知道它的作用!因此,具有单个名称的方法不是比重载更接近人类的思维方式吗?这正是 DLL 应该提供的
b) GetArticles 重载是否应该比 GetAllArticles、GetArticlesByCategory、GetPublishedArticles 和 GetPublishedArticlesByCategory 更直观?!
感谢
【问题讨论】:
-
谁推荐这个?就我个人而言,我会采用另一种方式——使用 BLL 中的详细名称和 DAL 中的重载。
-
在此链接上回复的人说:stackoverflow.com/questions/1488772/… ...但我不是 100% 确定,因为我对“在BLL”……换句话说,我不知道那是什么意思。另外,我正在读一本书“网站编程 - 问题、设计和解决方案”,作者在 BLL 层使用了重载,在 DAL 中使用了详细名称
标签: asp.net design-patterns webforms