decorator

9
DECORATOR

Upload: ukst

Post on 23-Jul-2015

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Decorator

DECORATOR

Page 2: Decorator

НАЗНАЧЕНИЕ

Динамически порождает объекты

Page 3: Decorator

СТРУКТУРА

Page 4: Decorator

РЕАЛИЗАЦИЯ

ABSTRACT CLASS COMPONENT

{

PUBLIC ABSTRACT VOID DRAW();

}

Page 5: Decorator

РЕАЛИЗАЦИЯ

CLASS CONCRETECOMPONENT : COMPONENT

{

PUBLIC OVERRIDE VOID DRAW()

{

}

}

Page 6: Decorator

РЕАЛИЗАЦИЯ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

РЕАЛИЗАЦИЯCLASS SCROLLDECORATOR : DECORATOR

{

PUBLIC OVERRIDE VOID DRAW()

{

BASE.DRAW();

SCROLLTO();

}

PRIVATE VOID SCROLLTO()

{

}

}

Page 8: Decorator

РЕАЛИЗАЦИЯCLASS BORDERDECORATOR : DECORATOR

{

PUBLIC OVERRIDE VOID DRAW()

{

BASE.DRAW();

DRAWBORDER();

}

PRIVATE VOID DRAWBORDER()

{

}

}

Page 9: Decorator

РЕАЛИЗАЦИЯ// 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();