decorator
TRANSCRIPT
![Page 1: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/1.jpg)
DECORATOR
![Page 2: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/2.jpg)
НАЗНАЧЕНИЕ
Динамически порождает объекты
![Page 3: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/3.jpg)
СТРУКТУРА
![Page 4: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/4.jpg)
РЕАЛИЗАЦИЯ
ABSTRACT CLASS COMPONENT
{
PUBLIC ABSTRACT VOID DRAW();
}
![Page 5: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/5.jpg)
РЕАЛИЗАЦИЯ
CLASS CONCRETECOMPONENT : COMPONENT
{
PUBLIC OVERRIDE VOID DRAW()
{
}
}
![Page 6: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/6.jpg)
РЕАЛИЗАЦИЯABSTRACT CLASS DECORATOR : COMPONENT
{
PROTECTED COMPONENT COMPONENT;
PUBLIC VOID SETCOMPONENT(COMPONENT COMPONENT)
{
THIS.COMPONENT = COMPONENT;
}
PUBLIC OVERRIDE VOID DRAW()
{
IF (COMPONENT != NULL)
{
COMPONENT.DRAW();
}
}
}
![Page 7: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/7.jpg)
РЕАЛИЗАЦИЯCLASS SCROLLDECORATOR : DECORATOR
{
PUBLIC OVERRIDE VOID DRAW()
{
BASE.DRAW();
SCROLLTO();
}
PRIVATE VOID SCROLLTO()
{
}
}
![Page 8: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/8.jpg)
РЕАЛИЗАЦИЯCLASS BORDERDECORATOR : DECORATOR
{
PUBLIC OVERRIDE VOID DRAW()
{
BASE.DRAW();
DRAWBORDER();
}
PRIVATE VOID DRAWBORDER()
{
}
}
![Page 9: Decorator](https://reader036.vdocument.in/reader036/viewer/2022071815/55a8aa141a28abff148b4668/html5/thumbnails/9.jpg)
РЕАЛИЗАЦИЯ// CREATE CONCRETECOMPONENT AND TWO DECORATORS
CONCRETECOMPONENT TEXTVIEW = NEW CONCRETECOMPONENT();
SCROLLDECORATOR SCROLLDECORATOR = NEW SCROLLDECORATOR();
BORDERDECORATOR BORDERDECORATOR = NEW BORDERDECORATOR();
// LINK DECORATORS
SCROLLDECORATOR.SETCOMPONENT(TEXTVIEW);
BORDERDECORATOR.SETCOMPONENT(SCROLLDECORATOR);
SCROLLDECORATOR.DRAW();
BORDERDECORATOR.DRAW();