Changes in model data may cause changes in views, which can be implemented in the Observer mode, while the relationship between multiple views can be used
Combined Mode implementation
Class csubject // observer Mode
{
Public:
Csubject (tagcarray * solid, tagcarray * select) {m_solid = solid, m_select = select ;}
Virtual ~ Csubject (){}
Void setobserver (cmcadview * view) {m_view = view;} // sets the observer
Void notify ()
{
If (m_view)
{
M_view-> updateview ();
}
}
Void drawsolid (CDC * PDC, int drawmode); // redraws an object and a selection set, which is saved in double storage.
PRIVATE:
Cmcadview * m_view;
Tagcarray * m_solid;
Tagcarray * m_select;
Void csubject: drawsolid (CDC * PDC, int drawmode)
{
For (INT I = 0; I <m_solid-> getsize (); I ++)
{
(* M_solid) [I]-> drawsolid (PDC, drawmode );
}
For (INT m = 0; m <m_select-> getsize (); m ++)
{
(* M_select) [m]-> drawsolid (PDC, select );
}
}