public abstract class AbstractFrame { /** Okno samo o sobě */ protected final JFrame frame; /** Mapa View - views */ protected final Map>, AbstractView> views = new HashMap>, AbstractView>(); /** Mapa Controllerů - controllers */ protected final Map, AbstractController> controllers = new HashMap, AbstractController>(); /** * Konstruktor * */ public AbstractFrame() { regControllers(); regViews(); // ... + vykreslení komponent } protected abstract void regViews(); protected abstract void regControllers(); /** * Získání konkrétního Pohledu z mapy všech zaregistrovaných na základě názvu třídy. * * @param viewClass * @return Instance požadovaného Pohledu */ @SuppressWarnings("unchecked") public > View getView(Class viewClass) { return (View) views.get(viewClass); } /** * Získání konkrétního Controlleru z mapy všech zaregistrovaných na základě názvu třídy. * * @param controllerClass * @return Instance požadovaného Controlleru */ @SuppressWarnings("unchecked") public Controller getController(Class controllerClass) { return (Controller) controllers.get(controllerClass); } }