【问题标题】:How do I name an object in the Business Layer that only does work? [closed]如何命名业务层中仅起作用的对象? [关闭]
【发布时间】:2012-11-16 23:11:12
【问题描述】:

我环顾四周,没有发现任何与我的问题相关的内容,但这部分是因为我不确定如何表达它。

我管理着大约 20 个不同的 C# .NET 应用程序,它们都做着相对相似的事情。

我正在努力将通用代码整合到数据、业务逻辑和演示中。

我的问题与业务逻辑层有关。

我认为业务/域对象是一个持有状态的对象,有时可能会执行相关操作(如果您采用这种方法)。

但是你会怎么称呼一个只通过例程工作的对象呢?

例如:

  1. 在表示层中触发了一个按钮事件。
  2. 表示层指向这个类并调用“RunJob()” 方法。
  3. RunJob() 完成它需要做的所有工作,然后完成。为了 例如,它可能会读取一个表格并将其输出为 CSV(很多 这些应用程序是数据推送器)。它可能会或可能不会使用内部 字段/属性。这些属性可用于显示数据 界面或创建输出。

是否有这个名称,或者它只是一个糟糕的模式/糟糕的 OO 在实践中?我不认为这有资格作为业务对象或助手。我看到一些other topics 暗示它可能是一个“服务”对象。

谢谢!

【问题讨论】:

  • 仅供参考:我相信“服务”课程是我想要的。这个约定对我有用。
  • 只是补充...我已经将这些东西放在“服务”层中,但通常这些东西的命名比我建议的要好得多。 RunJob 是一个糟糕的名字,暗示了一些糟糕的设计(代码味道)。然后我又在 2012 年问过这个问题......

标签: oop design-patterns business-logic


【解决方案1】:

对象的名称具体取决于它们所做的工作。 TableImporter 和 CsvExporter 是您描述的任务的好名称。这些方法也应该适当命名。您可能希望抽象一个接口 Runner 并使用一个通用的 RunJob 方法来解耦您的表示层和模型层,但如果您改用控制器,它可能会更加清晰和解耦。

【讨论】:

    【解决方案2】:

    暂时叫它WorkerThread,看看鲍伯叔关于命名的文章“http://www.objectmentor.com/resources/articles/Naming.pdf。然后把名字改成合理的。

    你的课不一定是坏课。大多数实体通常没有太多行为,有些辅助类没有太多状态。

    【讨论】:

      猜你喜欢
      • 2010-10-17
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      相关资源
      最近更新 更多