इसलिए मैंने क्यूटी 4.5 सीखना शुरू कर दिया है और सिग्नल/स्लॉट तंत्र को सहायता के लिए पाया है। हालांकि, अब मैं खुद को दो प्रकार के वास्तुकला पर विचार करने के लिए पाता हूं।सिग्नल/स्लॉट बनाम प्रत्यक्ष फ़ंक्शन कॉल
यह एक मैं प्रयोग करेंगे
class IDataBlock
{
public:
virtual void updateBlock(std::string& someData) = 0;
}
class Updater
{
private:
void updateData(IDataBlock &someblock)
{
....
someblock.updateBlock(data);
....
}
}
नोट है: संक्षिप्तता के लिए inlined कोड।
संकेतों के साथअब मैं कर सकता बस
void Updater::updateData()
{
...
emit updatedData(data);
}
यह क्लीनर है, एक अंतरफलक की आवश्यकता कम कर देता है, लेकिन मैं यह करना चाहिए सिर्फ इसलिए कि मैं कर सकता? कोड के पहले ब्लॉक में अधिक टाइपिंग और अधिक कक्षाओं की आवश्यकता होती है, लेकिन यह एक रिश्ते दिखाती है। कोड के दूसरे ब्लॉक के साथ, सबकुछ अधिक "निराकार" है। कौन सा वांछनीय है, और यदि यह मामला-दर-मामला आधार है, तो दिशानिर्देश क्या हैं?