始终处理模型对象或允许一些信息传播?

时间:2009-03-31 14:35:48

标签: oop

关于面向对象结构中的信息流的问题,例如,从控制器到存储库。

传递的对象是否始终在模型中,还是应该允许较小的信息部分传播?

你会推荐什么?哪些因素决定了这种方法?

E.g。

之类的东西
Controller:
    string alias = "alpha";
    bool aliasExists = Repository.CheckIfAliasExists(alias)
Repository:
    bool CheckIfAliasExists(string alias);

或类似

Controller:
    string alias = "alpha";
    Member member = Repository.GetMemberByAlias(alias);
    bool aliasExists = member != null;
Repository:
    Member GetMemberByAlias(string alias);

1 个答案:

答案 0 :(得分:1)

这是一个非常主观的主题,但我认为这个决定需要归结为两个想法:仅为了确定存在而检索整个对象的性能,以及允许特定于对象的信息达到范围更广。

有些人会争辩说,允许应用程序更多地使用这些识别信息会增加完全绕过对象模型的机会,但在这些情况下,我通常会在性能方面犯错误。

我的具体建议是采用前一种方法(尽管不要使后一种方法无效)。