1. du hast in interfaces leider absolut keine möglichkeit, code zu hinterlegen. das ist auch nciht der sinn von interfaces, sowas wäre sainn von echter mehrfachvererbung
also ja, du musst den code überall neu schreiben.
2. klar ist das wichtig. damit weiss der sprachen-"server", welchen string er dir jeweils liefern soll. nehmen wir einmal an, wir haben es in
XML:
XML-Code:
<language name="de/de">
<string id="0">%s</string>
<string id="1">Hallo, benutzer!</string>
</language>
<language name="en/us">
<string id="0">%s</string>
<string id="1">Hello, user!</string>
</language>
dann musst du, um einen string zu bekommen, Sprache und id haben.
3. Wie kennen? Die Implementation eines Interfaces bedeutet, da ist ein Objekt, das verfügt über bestimmte Eigenschaften, und das absolut unabhängig von allen anderen Charakteristika der Klasse. Sozusagen ein black-box-modell: Du hast einen schwarzen Kasten, von dem du nicht weisst,was er macht, aber du hast bestimmte Schnittstellen (man übersetze mal das wort "interface"
), von denen du genau weisst, wie sie funktionieren. In diesem schwarzen Kasten kann alles möglcihe drinsein, aber das ist dir völlig egal, wichtig ist (auf einer Seite) nur die Schnittstelle.
4. Damit registriert sich eine Komponente beim "Server", um beim Wechseln der Sprache auch den neuen string zu bekommen(Observer-Pattern! Bei Bedarf noch mal weiter oben nachlesen
). Es wäre übrigens auch denkbar, dort bereits die string-id zu übergeben, damit die nicht immer nochmal gequeriet... äh... abgefragt werden muss.