哪种解决方案最好,是直接在 QT 中创建连接还是调用方法?

Which solution is best, create connections, or call methods directly in QT?

开发 pdf reader 应用程序。 QT 5.11.0

GitHub

我有一个 class PdfPresenter,其中包含视图的 UI 业务逻辑。

class PdfPresenter
{
public:
    PdfPresenter(PdfViewer* parentPdfViewer);
    ~PdfPresenter();

SOME CODE HERE
public:
    void OnClick(const QPoint event);//some logic

private://fields
    LinkHandler *m_linkHandler;

早些时候,演示者使用界面与 View 交谈。最近我删除了这个东西,因为我认为它创建了一个不必要的抽象层。

另外,我有一个 LinkHandler class,它获取一个 link,定义它的类型,并做一些事情。

class LinkHandler
{
public:
    LinkHandler();

    void execute(Link link);

}

检测类型后我想调用父方法,比如转到页面,我有 2 个方法。

我的问题:

最好的做法是让所有这些 classes 都依赖于 QObject 并创建信号和槽,还是我应该在 LinkHandler 中创建一个父文件并直接调用方法?

这是一个很好的经验法则:

  • 如果您确切知道要通知的地方,请使用直接呼叫。
  • 如果您不知道要通知多少或哪些地方,请发出信号。