Прогрмна архитектура документ-изображение
| Информационни технологии | 2009-12-04 | 103 сваляния |
32. Прогрмна архитектура документ/ изображение. Основни класове, структуриращи приложението: документен клас, клас на изображение, класове рамнки. Двуслойна архитектура.
В MFC e залегнала концепцията програмата да се създаде с най - малко 2 слоя:
- документен занимаващ се с функционалното обработ. на данните, възстановяване, сериализация, комуникация и др.
Програмна архит. Document/ View
обект прил.
(цикъл на съобщ)

съобщенията се изпомпват към рамка и изглед

обект на прозореца рамка


изглед документен обект
Възможно е едно изображение да сменя множество документи или един документ да има много изображения.
SDI- приложения определена архитектура (класове)
В SDI в дадне момент има един документ и в общия случай едно изображение.
В МDI в даден моментсе работи с няколко документа от различен тип. Всеки документ може да има 1 или повече изображения.
В началото още се указва какво приложение SDI или МDI ще се прави. При двуслойна архитектура се обособяват няколко класове групи:
1)документен клас- обикновено името и класовете включват DOC
2)view class обикновено името и класовете включват view частицата. Класът View е дъщерен на рамката (Frame) и се явява клиентската част на приложението. То трябва да има производен на СView класа и всички извеждания отиват към методите на тези класове.
3) Frame class класове на рамката. Това е най-големия прозорец, в който се разполагат изображението. Някои съобщения могат да се пренасочат за обработка от Frame, а не от View.
4)Application class включва стартова точка на програмата, връзката между Frame/Veiw/Document
5)Document class отговаря за обработка на данни, сериализация, документация. Документния клас притежава специфичните интерфейси за обработка на данните. Има методи за обхойдане на всички обекти създадени от него или за UpdateAllView
View class
Изобразява данните. Комуникира с документа. Всеки View се свързва с документ посредством GetDocument().
CViewCountDoc* pDoc = dynamic_cast(GetDocument());
// Добре е в прил. да има собствена реал. на GetDocument():
ViewCountDoc* CViewCountView::GetDocumet() //връзка между Doc и View
{
CViewCountDoc* pDoc = dynamic_cast(GetDocument());
ASSERT_VALID( pDoc);
Return pDoc;
}
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument(); //прави връзка с документа откъдето трябва да се вземе стринга
CString string = pDocGetString();
CRect rect;
GetClientRect(&rect);
pDCDrawText( string, rect,..);
}
Frame също получава и обработва съобсетния. Това е прозорец от най- високо ниво.
Има два Frame:
- MainFrame
- ChildFrame
Main Frame Windows
-
F








ile ..
File ..

File В SDI File X в MDI
C


view CChildFrame
C
mainFrame CMainFrame
Тагове от реферата: окумент, прогрмна, ектура, основ, документ











