© 1999-2003, Flemming Koch Jensen
Alle rettigheder forbeholdtHandle Pattern
Vejledende løsninger
1 Først laver vi Language interfacet:
interface Language { public void hello(); public void error(); public void bye(); }Dernæst laver vi Message klassen:.
class Message { private Language lang; public Message( Language lang ) { setLang( lang ); } public void setLang( Language lang ) { this.lang = lang; } public void hello() { lang.hello(); } public void error() { lang.error(); } public void bye() { lang.bye(); } }De tre Language klasser er meget ens. Vi vil derfor kun vise en af dem her:
class English implements Language { public void hello() { System.out.println( "Hello" ); } public void error() { System.out.println( "Error" ); } public void bye() { System.out.println( "Bye" ); } }Endelig har vi, som altid, en testanvendelse:
class TestLanguage { public static void main( String argv[] ) { Language dansk = new Danish(); Language engelsk = new English(); Language tysk = new German(); Message msg = new Message( dansk ); talk( msg ); msg.setLang( tysk ); talk( msg ); msg.setLang( engelsk ); talk( msg ); } private static void talk( Message msg ) { msg.hello(); msg.error(); msg.bye(); } }
Goddag Fejl Farvel Guten tag Fehler Auf wiedersehen Hello Error ByeKildetekster:
Language.java
Message.java
Danish.java
English.java
German.java
TestLanguage.java