Jak wykombinować kod wyliczenia/interfejsu

0

Mam mały problem do przepykania.
Musi być taki kawałek kodu:

	private Ask delegate;

	//...
	
	//w jakiejś metodzie np. konstruktor
	setAskDelegate(Ask ask)
	{
		this.delegate = ask;
	}

	//...
	
	//w innej metodzie wykonawczej
	int result = -1;
	do
		try { result = action(); }
		catch(IOException exc)
		{
			switch(delegate.ask("Your choice?", Ask.REPEAT, Ask.ABORT, Ask.IGNORE))
			{
			case REPEAT:
				continue;
			case ABORT:
				//...
				return;
			case IGNORE:
				break;
			}
		}
	while(result < 0);

Chodzi o to, że muszę połączyć wyliczenie z interfejsem tak aby taki kod mógł się kompilować i działać.
W skrócie ma to działać podobnie jak interfejs dla listenerów, tyle że delegować uogólnioną metodę ask będącą zależnie od argumentu metody setAskDelegate() albo zapytaniem na konsoli, albo okienkiem typu messagebox, albo w ogóle jakąś interaktywną animacją (to nie ważne).
Przy czym nie może to być wykonane na żadnych stałych int, ale wyliczeniami i interfejsami i ewentualnie EnumSet jeżeli da się to zrobić jako kod uogólniony dla dowolnego wyliczenia i zbioru takich wartości.
Metoda ask() powinna zwracać element wyliczenia tak aby mogła zadziałać instrukcja switch.
Samo Ask może być klasą, interfejsem, wyliczeniem, zbiorem wyliczeń lub ich dowolną kombinacją.

Ma ktoś z was jakiś pomysł jak coś takiego wykombinować?
Szukałem gdzieś po wzorcach projektowych, ale nic pasującego jakoś nie znalazłem.

0

Hmm.. Własne usługi w JSE

I wsio ryba. Fabryka i niech się dostawca martwi co dostarcza.

0

Sprytne i wredne. Czyli chyba w sam raz.
Zastanawiam się tylko ile stopni tego podejścia można skutecznie wykorzystać.
Na przykład interfejs dostarczający interfejs do interfejsu. ;)

0

Zaręczam, że w systemach JEE można i nawet 10 poziomów zagłębienia mieć, ale po co? Pisze widget GWT w którym mam 10 interfejsów i jedną klasę. Wszystkie testy itp oparte o interfejsy, a implementację robię w miarę potrzeb.

1 użytkowników online, w tym zalogowanych: 0, gości: 1