Najlepszy samouczek Adapter model W 2024 r. W tym samouczku możesz dowiedzieć się wprowadzenie,realizacja,
Tryb Adapter (Adapter deseń) jako pomost pomiędzy dwoma niezgodnymi interfejsami. Tego rodzaju wzorców projektowych należą wzór strukturalny, który łączy w sobie cechy dwóch oddzielnych interfejsów.
Model ten wiąże się z jednej klasy, który jest odpowiedzialny za niezależne lub niekompatybilnymi łączą funkcji interfejsu. Na przykład prawdziwego życia, jako czytnik kart pamięci jest adapter i laptop pomiędzy. Karta pamięci do czytnika, to czytnik do notebooka, dzięki czemu karta pamięci mogą być odczytywane za pośrednictwem komputera.
Wykazujemy stosowanie trybu adaptera następujących przykładach. W którym odtwarzacz audio może odtwarzać tylko pliki mp3 grać VLC i MP4 plików przy użyciu bardziej zaawansowanego odtwarzacza audio.
Intencja: aby przekształcić interfejs klasy do innego interfejsu klienci oczekują.wzór sprawia, że te klasy Adapter inaczej z powodu niekompatybilnych interfejsów nie mogą ze sobą współpracować, aby wspólnie pracować.
Głównie do rozwiązania: główne rozwiązanie w systemie oprogramowania, często niektóre z "istniejącego obiektu" do nowego środowiska, nowych wymogów środowiskowych, a interfejs jest obecnie obiekt nie może być spełnione.
Kiedy stosować: 1, system wymaga użycia istniejącej klasy, a takie interfejsy nie spełniają potrzeb systemu.2, aby utworzyć klasy mogą być ponownie wykorzystane, w tym niektóre mogą działać niektóre z grup nie są znacznie związane ze sobą w przyszłości wprowadzenia grupy te klasy nie muszą mieć tego samego interfejsu źródłowego. 3, poprzez konwerter interfejsu, klasy do innej linii klasowych. (Takie jak tygrysy i ptaków, teraz bardziej niż Tiger bez zwiększania popytu podmiotów w ramach dodatkowego adaptera, w której tygrysa obiekty inclusive, wdrażania interfejs latać.)
Jak naprawić: dziedziczone lub uzależnienie (zalecane).
Kluczowymi kod: dziedziczenie adapter lub zależnych obiektów, które już istnieją, aby osiągnąć pożądany interfejs docelowy.
Przykłady zastosowań: 1 Stany Zjednoczone elektryczny 110V, 220V Chiny, nie powinno być zasilacz 110V do 220V.2, Java JDK 1.1 zapewnia interfejs wyliczanie i zapewnia interfejs Iterator w 1.2, chcesz korzystać z JDK 1.2, zanim system będzie musiał być przekształcony wyliczają interfejsu interfejs Iterator, to trzeba wzorzec adaptera. 3, należy uruchomić program na Windows Linux. 4, JAVA w JDBC.
Zalety: 1, można dokonać wszelkiego rodzaju biegną razem dwa niepowiązane.2, poprawić ponowne użycie klasy. 3, zwiększenie przejrzystości klasy. 4, dobra elastyczność.
Wady: 1, nadmierne korzystanie z adaptera, dzięki czemu system bardzo brudny i trudny do uchwycenia całości.Na przykład, połączenie jest wyraźnie widoczne interfejs, w rzeczywistości, być dostosowane do osiągnięcia B wewnętrzny interfejs stał się systemem, czy to dzieje się zbyt wiele, jest równoznaczne z katastrofą. Tak więc, jeśli nie jest to konieczne, nie można użyć adaptera, lecz bezpośrednio do systemu zrekonstruowany. 2. co najwyżej JAVA dziedziczyć klasy, więc na najlepszej adaptacji adaptacji przez klasy i musi kierować klasą jest klasa abstrakcyjna.
scenariusze: Jest motywacja do modyfikowania interfejsu normalne funkcjonowanie systemu, należy rozważyć użycie trybu adaptera.
Uwaga: Adapter nie zostanie dodany po szczegółowy projekt, ale żeby rozwiązać problem w projektach usługowych.
Mamy interfejsMediaPlayeroraz realizację interfejsu klasy podmiotAudioPlayerMediaPlayer.DomyślnieAudioPlayer można odtwarzać MP3 Format pliku audio.
Mamy też innyAdvancedMediaPlayerinterfejsu i wdrożone klas encjiAdvancedMediaPlayerinterfejs. Ta klasa może odtwarzać VLC plików i formatów MP4.
Chcemy, abyAudioPlayerodtwarzania plików audio do innych formatów. Aby to osiągnąć, musimy utworzyć klasy adaptera implementuje interfejsMediaAdapterMediaPlayer i używać obiektuAdvancedMediaPlayergrać żądany format.
AudioPlayerużyciu klasy adapteraMediaAdapterprzenieść żądany rodzaj dźwięku, nie trzeba znać format rzeczywistej klasy może odegrać potrzeb audio.AdapterPatternDemo,nasze zajęcia pokazowe z wykorzystaniem klasyodtwarzacze audiodo odtwarzania różnych formatów.
Gracze i bardziej zaawansowany odtwarzacz multimedialny, aby stworzyć interfejs dla mediów.
MediaPlayer.java
public interface MediaPlayer { public void play (String audioType, String filename); }
AdvancedMediaPlayer.java
public interface AdvancedMediaPlayer { public void playVlc (String filename); public void playMp4 (String filename); }
Tworzenie klas encji realizowane interfejsAdvancedMediaPlayer.
VlcPlayer.java
public class VlcPlayer realizuje AdvancedMediaPlayer { @Override public void playVlc (String filename) { System.out.println ( "Gra vlc Nazwa pliku :." + filename); } @Override public void playMp4 (string nazwa_pliku) { // Nic nie rób} }
Mp4Player.java
public class Mp4Player realizuje AdvancedMediaPlayer { @Override public void playVlc (String filename) { // Nic nie rób} @Override public void playMp4 (string nazwa_pliku) { System.out.println ( "Odtwarzanie plików mp4 Nazwa :." + FileName); } }
Tworzenie klasyMediaPlayerrealizuje adapter interfejsu.
MediaAdapter.java
public class MediaAdapter realizuje MediaPlayer { AdvancedMediaPlayer advancedMusicPlayer; publicznego MediaAdapter (String audioType) { if (audioType.equalsIgnoreCase vlc ( "")) { advancedMusicPlayer = new VlcPlayer (); } Else if (audioType.equalsIgnoreCase ( "mp4")) { advancedMusicPlayer = new Mp4Player (); } } @Override public void play (String audioType, String filename) { if (audioType.equalsIgnoreCase vlc ( "")) { advancedMusicPlayer.playVlc (filename); } Else if (audioType.equalsIgnoreCase ( "mp4")) { advancedMusicPlayer.playMp4 (filename); } } }
Tworzenie klas encji realizowane interfejsMediaPlayer.
AudioPlayer.java
public class AudioPlayer realizuje MediaPlayer { MediaAdapter mediaAdapter; @Override public void play (String audioType, String filename) { // Odtwarzać pliki mp3 z muzyką, wbudowane wsparcie if (audioType.equalsIgnoreCase ( "mp3")) { System.out.println ( "Odtwarzanie plików MP3 Nazwa :." + FileName); } // MediaAdapter zapewnia odtwarzania innych formatów plików obsługiwanych else if (audioType.equalsIgnoreCase vlc ( "") || AudioType.equalsIgnoreCase ( "mp4")) { mediaAdapter = new MediaAdapter (audioType); mediaAdapter.play (audioType, filename); } else { System.out.println ( "Nieprawidłowy nośnik". + audioType + "format nie jest obsługiwany"); } } }
AudioPlayer używać do odtwarzania różnych typów formatów audio.
AdapterPatternDemo.java
{public class AdapterPatternDemo public static void main (String [] args) { AudioPlayer AudioPlayer = new AudioPlayer (); audioPlayer.play ( "mp3", "poza horizon.mp3"); audioPlayer.play ( "MP4", "alone.mp4"); audioPlayer.play ( "OHP", "Far Far away.vlc"); audioPlayer.play ( "avi", "umysł me.avi"); } }
Sprawdź, czy wyjście.
Odtwarzanie Nazwa pliku mp3 :. Za horizon.mp3 Grając MP4 Nazwa pliku :. Alone.mp4 Gra vlc Nazwa pliku :. Daleko, daleko away.vlc Nieprawidłowe mediów. AVI nie jest obsługiwana