Vì vậy, tôi đã bắt đầu tìm hiểu Qt 4.5 và tìm thấy cơ chế Signal/Slot để được trợ giúp. Tuy nhiên, bây giờ tôi thấy mình đang xem xét hai loại kiến trúc.Tín hiệu/Slot so với các cuộc gọi hàm trực tiếp
Đây là một trong những Tôi sẽ sử dụng
class IDataBlock
{
public:
virtual void updateBlock(std::string& someData) = 0;
}
class Updater
{
private:
void updateData(IDataBlock &someblock)
{
....
someblock.updateBlock(data);
....
}
}
Lưu ý: Mã inlined cho ngắn gọn.
Bây giờ với tín hiệu tôi có thể chỉ
void Updater::updateData()
{
...
emit updatedData(data);
}
Đây là sạch hơn, giảm sự cần thiết của một giao diện, nhưng tôi nên làm điều đó chỉ vì tôi có thể? Khối mã đầu tiên yêu cầu nhập nhiều hơn và nhiều lớp hơn, nhưng nó cho thấy một mối quan hệ. Với khối mã thứ hai, mọi thứ trở nên "vô dụng" hơn. Cái nào là hấp dẫn hơn, và nếu nó là cơ sở từng trường hợp, các hướng dẫn là gì?