Adapter-Entwurfsmuster

In diesem Tutorial werde ich das erklären Adapter-Designmuster als Teil der Entwurfsmuster in der Java-Reihe. Das Adapterentwurfsmuster ist eines der strukturellen Entwurfsmuster, da sich der Adapterentwurf damit befasst, wie wir ein Objekt erstellen/strukturieren. Das Hauptproblem, das dieses Muster zu lösen versucht, besteht darin, dass zwei inkompatible Schnittstellen funktionieren. Ich denke, das ist der Grund für den Begriff „Adapter“.

Adapter-Entwurfsmuster

Es gibt zwei Arten von Adapterentwurfsmustern:

  • Klassenadapter : Dieser Typ verwendet die Java-Vererbung, um die Klasse zu erweitern und dann die Adapterschnittstelle zu implementieren.
  • Objektadapter : Dies verwendet die Java-Komposition, wobei der Adapter das Quellobjekt enthält.
  • Im folgenden Beispiel habe ich beide Arten von Adaptermustern als Referenz verwendet. Ich habe das einfache Beispiel von PowerGrid genommen, bei dem die Spannung mit hoher Lautstärke anliegt. Ich verwende einen Adapter, um diese in niedrigere Pegel umzuwandeln. Beachten Sie, dass dies sehr einfach ist und das Konzept auch dann gleich bleibt, wenn Sie es in Echtzeit implementieren.
    PowerGrid.java

    class PowerGrid {
    	public int getPower() {
    		return 1000;
    	}
    }
    

    PowerAdapter.java

    interface PowerAdapter {
    	int get10V();
    
    	int get50V();
    
    	int get100V();
    }
    

    PowerAdapterClassImpl.java

    class PowerAdapterClassImpl extends PowerGrid implements PowerAdapter {
    	@Override
    	public int get10V() {
    		return (getPower() / 100);
    	}
    
    	@Override
    	public int get50V() {
    		return (getPower() / 20);
    	}
    
    	@Override
    	public int get100V() {
    		return (getPower() / 10);
    	}
    }
    

    PowerAdapterObjectImpl.java

    class PowerAdapterObjectImpl implements PowerAdapter {
    	private PowerGrid grid;
    
    	@Override
    	public int get10V() {
    		return (grid.getPower() / 100);
    	}
    
    	@Override
    	public int get50V() {
    		return (grid.getPower() / 20);
    	}
    
    	@Override
    	public int get100V() {
    		return (grid.getPower() / 10);
    	}
    }
    

    AdapterDesignPatternExample.java

    public class AdapterDesignPatternExample {
    	public static void main(String args[]) {
    		PowerAdapter classAdapter = new PowerAdapterClassImpl();
    		System.out.println(classAdapter.get100V());
    		System.out.println(classAdapter.get50V());
    		System.out.println(classAdapter.get10V());
    		
    		PowerAdapter objectAdapter = new PowerAdapterObjectImpl();
    		System.out.println(objectAdapter.get100V());
    		System.out.println(objectAdapter.get50V());
    		System.out.println(objectAdapter.get10V());
    		
    	}
    }
    

    Ich hoffe, dass dieses Tutorial Ihnen ein sehr einfaches Beispiel und eine Illustration zur Implementierung des Adapterentwurfsmusters geliefert hat. Wenn Sie ein interessantes Beispiel für das Adapter-Designmuster haben, teilen Sie es uns bitte im Kommentarbereich mit.

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen