Dự án GUI của tôi trong Qt
có rất nhiều lớp "trang cấu hình" mà tất cả đều kế thừa trực tiếp từ đó QWidget
.
Gần đây, tôi nhận ra rằng tất cả các lớp này đều chia sẻ 2 khe commons ( loadSettings()
và saveSettings()
).
Về điều này, tôi có hai câu hỏi:
- Có hợp lý không khi viết một lớp trừu tượng cơ sở trung gian (hãy đặt tên cho nó
BaseConfigurationPage
) với hai vị trí này dưới dạng các phương thức thuần ảo? (Mọi trang cấu hình có thể sẽ luôn có hai phương thức này, vì vậy tôi sẽ nói "có") - Trước khi tôi thực hiện thay đổi lớn trong mã của mình (nếu tôi phải làm): Qt có hỗ trợ khe thuần ảo không? Có điều gì tôi nên biết không?
Đây là một ví dụ mã mô tả mọi thứ:
class BaseConfigurationPage : public QWidget
{
// Some constructor and other methods, irrelevant here.
public slots:
virtual void loadSettings() = 0;
virtual void saveSettings() = 0;
};
class GeneralConfigurationPage : public BaseConfigurationPage
{
// Some constructor and other methods, irrelevant here.
public slots:
void loadSettings();
void saveSettings();
};