享元模式java
適配器模式(Adapter Pattern)是做爲兩個不兼容的接口之間的橋樑。這種類型的設計模式屬於結構型模式,它結合了兩個獨立接口的功能。設計模式
這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能。舉個真實的例子,讀卡器是做爲內存卡和筆記本之間的適配器。您將內存卡插入讀卡器,再將讀卡器插入筆記本,這樣就能夠經過筆記原本讀取內存卡。ide
package com.xgp.company.結構性模式.第一種_適配器模式; /** * 要被適配的類(網線) */ public class Adaptee { public void request() { System.out.println("鏈接網線上網!"); } }
package com.xgp.company.結構性模式.第一種_適配器模式; /** * 客戶端類:想上網,插不上網線 */ public class Computer { //咱們的電腦須要鏈接上轉接器才能上網 public void net(NetToUsb adapter) { //上網的具體實現,找一個轉接頭 adapter.handleRequest(); } public static void main(String[] args) { //電腦,適配器,網線 Computer computer = new Computer(); Adapter adapter = new Adapter(); // Adaptee adaptee = new Adaptee(); computer.net(adapter); } }
package com.xgp.company.結構性模式.第一種_適配器模式; /** * 接口轉換器的抽像實現 */ public interface NetToUsb { //做用:處理請求(網 => usb) public void handleRequest(); }
package com.xgp.company.結構性模式.第一種_適配器模式; /** * 一、繼承方式(類適配器) * 二、組合(對象適配器:經常使用) */ /** * 適配器:須要鏈接usb和網線 */ public class Adapter extends Adaptee implements NetToUsb { @Override public void handleRequest() { //能夠上網了 super.request(); } }
鏈接網線上網!
package com.xgp.company.結構性模式.第二種_適配器模式; /** * 一、繼承方式(類適配器) * 二、組合(對象適配器:經常使用) */ /** * 適配器:須要鏈接usb和網線 */ public class Adapter implements NetToUsb { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } @Override public void handleRequest() { //能夠上網了 adaptee.request(); } }
package com.xgp.company.結構性模式.第二種_適配器模式; /** * 客戶端類:想上網,插不上網線 */ public class Computer { //咱們的電腦須要鏈接上轉接器才能上網 public void net(NetToUsb adapter) { //上網的具體實現,找一個轉接頭 adapter.handleRequest(); } public static void main(String[] args) { //電腦,適配器,網線 Computer computer = new Computer(); Adaptee adaptee = new Adaptee(); Adapter adapter = new Adapter(adaptee); computer.net(adapter); } }
鏈接網線上網!