class Page { void activate() { } void disactivate() { } void frame() { } void click() { } void drag() { } //void move() { } void press() { } void release() { } } //kontroler zajmujący się zmienianiem stron class Controller { HashMap pages = new HashMap(); // optymalizacja zbedna: przelaczanie stron rzadko wykonywane, a wygoda nazw-Stringow cenna Page currentPage = null; //bieżąca strona void addPage(String name, Page page) { pages.put(name, page); } void switchPage(String name) { if (name != null && pages.containsKey(name)) { if (currentPage != null) currentPage.disactivate(); currentPage = (Page) pages.get(name); currentPage.activate(); } } void frame() { currentPage.frame(); } void click() { currentPage.click(); } void drag() { currentPage.drag(); } //void move() { currentPage.move(); } void press() { currentPage.press(); } void release() { currentPage.release(); } }