Design Pattern #1

Autor: NathalieOhneHerz GitHub

Das Adapter Pattern - Adaptierung in der Methode

Hauptartikel: [Design Pattern #1] Was sind die Design patterns und [Design Pattern #9] Das Adapter Pattern


Was ist das Adapter Pattern "per Methode"?

Hierbei handelt es sich um ein alternatives Design des Adapter Pattern. Das Beispiel im Hauptartikel legt lediglich dar, wie das zu adaptierende Objekt im Konstruktor des Adapters adaptiert wird. Eine zweite Möglichkeit ist es, erst in der eigentlichen Methode eine Adaptierung vorzunehmen. Das kann zum Beispiel verwendet werden, wenn ein Prefix vor eine Nachricht gehangen werden soll.


Modellierung


Implementierung in Java

package de.nathalieoneill.devtek.adapter.v1; /** * @author Nathalie */ public interface DevTekMessages { String getString(String messageKey); }
package de.nathalieoneill.devtek.adapter.v1; /** * @author Nathalie */ public class SimpleDevTekMessages implements DevTekMessages { @Override public String getString(String messageKey) { if ("welcome".equalsIgnoreCase(messageKey)) return "Willkommen!"; else if ("byebye".equalsIgnoreCase(messageKey)) return "Tschüss!"; return ""; } }
package de.nathalieoneill.devtek.adapter.v1; /** * @author Nathalie */ public class DevTekMessagesAdapter implements DevTekMessages { private final DevTekMessages handle; public DevTekMessagesAdapter(DevTekMessages handle) { this.handle = handle; } @Override public String getString(String messageKey) { return "[DevTek] " + handle.getString(messageKey); } }

Die Verwendung sähe dann so aus:

package de.nathalieoneill.devtek.adapter.v1; /** * @author Nathalie */ public class DevTek { public static void main(String[] args) { DevTekMessages devTekMessages = new SimpleDevTekMessages(); System.out.println(devTekMessages.getString("welcome")); System.out.println(devTekMessages.getString("byebye")); devTekMessages = new DevTekMessagesAdapter(devTekMessages); System.out.println(devTekMessages.getString("welcome")); System.out.println(devTekMessages.getString("byebye")); } }

Ich hoffe dass ich euch das Adapter Pattern erneut näher bringen konnte. Danke an Aquaatic der sich das hier indirekt gewünscht hat.

Mit freundlichen Grüßen
Nathalie