最常用的模式之一。
GOF:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
#include "createElement.h"
extern"C" DLLEXPORT int MdlMain
(
int argc,
char** argv
)
{
DPoint3d pts[] = {
{0,0,0},
{10000,0,0},
{10000,10000,0},
{0,10000,0}
};
Transform tr;
DPoint3d translate = {15000,0,0};
mdlTMatrix_getIdentity (&tr);
mdlTMatrix_setTranslation (&tr, &translate);
Drawing* draw1 = new v1Drawing;
Drawing* draw2 = new v2Drawing;
shape* r1 = new Rectangle (draw1, pts[0], pts[1], pts[2], pts[3]);
mdlTMatrix_transformPointArray (pts, &tr, 4);
shape* r2 = new Rectangle (draw2, pts[0], pts[1], pts[2], pts[3]);
r1->draw ( );
r2->draw ( );
delete r1;
delete r2;
shape* c1 = new Circle (draw1, pts[0], 5000);
shape* c2 = new Circle (draw2, pts[1], 5000);
c1->draw ( )