哪种解决方案最好,是直接在 QT 中创建连接还是调用方法?
Which solution is best, create connections, or call methods directly in QT?
开发 pdf reader 应用程序。 QT 5.11.0
我有一个 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 中创建一个父文件并直接调用方法?
这是一个很好的经验法则:
- 如果您确切知道要通知的地方,请使用直接呼叫。
- 如果您不知道要通知多少或哪些地方,请发出信号。
开发 pdf reader 应用程序。 QT 5.11.0
我有一个 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 中创建一个父文件并直接调用方法?
这是一个很好的经验法则:
- 如果您确切知道要通知的地方,请使用直接呼叫。
- 如果您不知道要通知多少或哪些地方,请发出信号。