Классы фабрики являются большим количеством тяжеловеса, но дают Вам определенные преимущества. В случаях, когда необходимо создать объекты от нескольких, источники необработанных данных, они позволяют Вам инкапсулировать только логику здания (и возможно агрегирование данных) в одном месте. Там это может быть протестировано в кратком обзоре, не касаясь интерфейса объекта.
я нашел это полезным шаблоном, особенно где я неспособен заменить и несоответствующий ORM и хотеть эффективно инстанцировать многих объектов от соединений Таблицы базы данных или хранимых процедур.
Если вы не используете классы MFC, см. Об элементах управления всплывающей подсказки
Вот пример использования класса CToolTipCtrl
,
// Init a tooltip window
m_ToolTipCtrl = new CToolTipCtrl;
m_ToolTipCtrl->Create( this ); // 'this', usually a CDialog window
m_ToolTipCtrl->SetMaxTipWidth( 300 ); // if you need multiline messages
m_ToolTipCtrl->SetTipBkColor( 0x000000 );
m_ToolTipCtrl->SetTipTextColor( 0xe0e0d0 );
// Attach a CListBox control (we can attach many controls)
m_ToolTipCtrl->AddTool( plstBox, "Hey, i am a tooltip message!" );
// ...
// (*) We must use the following in order to use tooltips (MFC 4.0 and later versions)
BOOL MyDialog::PreTranslateMessage(MSG* pMsg)
{
if (NULL != m_ToolTipCtrl)
m_ToolTipCtrl->RelayEvent(pMsg); // <- listen mouse messages!
return CDialog::PreTranslateMessage(pMsg);
}