【问题标题】:Correct way to add a print functionality to a java class [closed]将打印功能添加到 java 类的正确方法 [关闭]
【发布时间】:2021-10-30 07:42:54
【问题描述】:

假设我有class Report,我想添加一个功能printReport(...)shouldBePrinted(...)。打印它需要从外部提供的GeneralPrinterLanguageTranslator。此外,我应该添加成员以使shouldBePrintable 方法更加优化。

在我看来有三种方法:

  1. 最简单的方法是将成员和函数添加到Report 类中。
  2. 创建 PrintableReport,它扩展 Report 并添加这些成员和函数。
  3. 使用装饰器模式添加所需的功能。 (不确定那个。如果这不是使用装饰器的正确方法,请纠正我。)

我是否遗漏了一些,哪种方法是正确的?

【问题讨论】:

标签: java inheritance decorator


【解决方案1】:

考虑:关注点分离

处于高水平...

虽然尚不清楚Report 究竟扮演什么角色,但人们可能会推测它代表了以某种方式组织的信息。

渲染是一个单独的问题。通常您需要多种渲染方式:生成 PDF、HTML、XML 和/或打印(postscript、其他...)。

所以,也许你有多个类可以使用ReportGeneralPrinterReportPrinter、...

【讨论】:

  • 我明白了。你说的对。报告不应该负责打印,只对优化shouldBePrinted方法的成员负责。
猜你喜欢
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多