Java中的適配器類是什麼? 適配器類及其類型的優點
已發表: 2021-05-19目錄
什麼是適配器類?
在 JAVA 中,適配器類允許偵聽器接口的默認實現。 偵聽器接口的概念源於委託事件模型。 它是用於處理圖形用戶界面 (GUI) 編程語言(如 JAVA)中事件的眾多技術之一。
GUI 編程主要是事件驅動的,用戶通過相關的視覺和圖形與系統交互。 這意味著用戶發起的每個活動,例如改變鼠標指針在屏幕上的坐標的鼠標移動、單擊按鈕或滾動頁面,都被視為一個獨立事件。
這些獨立的事件活動中的每一個都內在地鏈接到一個代碼段,該代碼段迭代應用程序應該向用戶提供的響應。 途徑很簡單。 用戶(源)生成一個事件並將其發送到一個或多個偵聽器接口。 一旦接收到事件電位,偵聽器接口就會處理該事件並返回適當的響應。
該途徑證實了事件處理的過程。 因此,JAVA 中的適配器類用於實現具有一組虛擬方法的接口。 如果程序員選擇繼承適配器類,他們將不會被迫實現特定偵聽器接口下列出的所有方法。 適配器類可以進一步子類化,以便程序員可以只覆蓋所需的方法。 換句話說,通過使用適配器類,程序員可以快速構建自己的現場事件監聽器接口。 這有助於節省代碼。
適配器類和偵聽器接口之間的關係是什麼?
當程序員打算利用接口下列出的大多數方法時,將使用偵聽器。 如果偵聽器接口由類直接實現,則該接口內的所有方法都需要實現,導致代碼過大。 這種複雜性可以通過調用適配器類來解決。 在事件僅調用特定方法的情況下,適配器類被證明是必不可少的。
程序員只需創建它的子類並重寫感興趣的方法即可使用適配器類。 因此,適配器類有利於 JAVA 中具有多個方法的偵聽器接口。 為了更好地理解這一點,讓我們考慮一下 MouseListener 接口的例子。 每當鼠標狀態發生變化時,都會通知該界面。 它有五個方法,mouse clicked、mouseExited、mouseEntered、mousePressed 和 mouseReleased。
當通知某個事件時,即使只需要這些方法中的一個,也需要實現所有這些方法。 不需要的方法保留為空。 適配器類用於避免空方法體的這種不必要的實現。
了解適配器設計模式
用非技術術語來說,根據定義,適配器在結構上設計為允許兩個不兼容的接口一起工作。 因此,適配器模式能夠使兩個不兼容的接口兼容,而無需更改它們現有的代碼。 相應的接口可能不一致,但它們的內部功能應該與所尋求的要求相匹配。 為了更好地闡明這一點,讓我們考慮一個相關的例子。
我們知道不同的國家有不同的電源插座、電壓和頻率測量值。 如果我們必須在另一個國家使用按照一個國家的規範設計的設備,我們需要確保該設備是兼容的。
例如,在英國,通常使用 G 型插座,在美國和日本,使用 A 型和 B 型插座,而在印度,則使用 C 型、D 型和 M 型。從印度攜帶的筆記本電腦或移動設備將因此與美國和日本的電氣規格不兼容。 這就是適配器的目的對於將不兼容的代碼轉換為兼容的代碼至關重要的地方。
適配器類的類型
適配器類可以在java中找到。 awt.the event、java.awt.dnd 和 java.swing.event 包。 下面針對這些包中的每一個都提到了標準適配器類及其在 JAVA 中的相應偵聽器接口。
1. 爪哇。 重量前夕
適配器類 | 監聽器接口 |
窗口適配器 | 窗口監聽器 |
密鑰適配器 | 按鍵監聽器 |
鼠標適配器 | 鼠標監聽器 |
鼠標運動適配器 | 鼠標運動監聽器 |
焦點適配器 | 焦點監聽器 |
組件適配器 | 組件監聽器 |
容器適配器 | 容器監聽器 |
層次邊界適配器 | HierarchyBoundsListener |
2.java.awt.dnd
適配器類 | 監聽器接口 |
拖動源適配器 | 拖動源監聽器 |
拖動目標適配器 | 拖動目標監聽器 |
3.javax.swing.event
適配器類 | 監聽器接口 |
鼠標輸入適配器 | 鼠標輸入監聽器 |
內部框架適配器 | 內部幀監聽器 |
這些存在於它們各自的 Java 包的抽象窗口工具包中。 要了解偵聽器接口中包含的方法的性質,讓我們考慮幾個示例:
- WindowListener接口定義了與窗口事件相關的方法,包括窗口的打開和關閉、窗口的激活和去激活以及窗口的圖標化和解毒。
- KeyListener 接口定義了處理由用戶與鍵盤組件交互觸發的鍵事件的方法。
- 當鼠標穩定並接收到與用戶視覺框架上的退出、進入、單擊、按下或釋放組件相關的事件電位時,將通知 MouseListener 接口。
- 組件偵聽器接口接收組件事件電位。 在這裡,組件是指任何設計用於與用戶交互的圖形對象,例如按鈕、複選框和滾動條。
類適配器和對象適配器的區別
為了保證功能性和靈活性,面向對象的編程(如 JAVA)為程序員提供了繼承和組合等特性。 如果您嘗試通過從另一個類繼承其功能來重用特定代碼,則您創建的子類將在整個程序的整個長度內保持依賴於父類。
在許多情況下,這使得系統變得越來越複雜且可測試性越來越差,並且使得在運行時交換功能變得非常困難。 在作文中,一個類只使用另一個類。 通過明確定義接口,進一步促進了兩者之間的解耦。
因此,類適配器與對象適配器之間的爭論可以解決如下。 類適配器使用繼承,因此只能包裝一個類。 它不能包裝接口,因為根據定義,它必須派生自某個基類。 對象適配器使用組合,因此能夠包裝類和接口。 這主要是因為在組合中,每個類或接口都是私有的封裝成員。
適配器類的優點
- 適配器類幫助不相關的類一起工作。
- 通過使用適配器類,可以以多種方式使用同一個類。
- 為用戶提供了用於開發應用程序的可插拔套件選項。 因此,類的使用變得高度可重用。
- 它增強了類的透明度。
- 它提供了一種在類中包含相關模式的方法。
從世界頂級大學在線學習軟件工程課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
通過本文,我們了解了 JAVA 中適配器類的機制、包含適配器類的三個主要包以及適配器類對程序員的好處。 適配器類是用於接收各種事件的抽像類,並作為創建偵聽器對象的便利而存在。 憑藉其不同的功能,適配器類為程序員提供了通過 Swing 方法進行創新的平台。
如果您想提高您的 Java 技能,您需要掌握這些 Java 項目。 如果您有興趣了解有關 Java、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓,9+項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
Java中的適配器類是什麼?
適配器類是使用適配器模式定義的類。 適配器可用於向現有類添加新功能,而無需修改原始類。 例如,java.util.Scanner 類來自 java.util 包。 Scanner 類無法從文件中讀取,因為文件不是 InputStream。 為了從文件中讀取,我們創建了一個適配器類,它接受 InputStream 作為參數並將處理後的數據作為對象返回。 適配器模式用於擴展現有類的功能,而無需以任何方式修改其代碼。
Java中的設計模式是什麼?
設計模式是軟件設計中給定上下文中常見問題的通用可重用解決方案。 它不是可以直接轉換為代碼的完成設計。 它是關於如何解決問題的描述或模板,可以在許多不同的情況下使用。 在面向對象的編程中,設計模式是為簡化軟件系統的設計和實現而建立的約定。 Java中有幾種設計模式。 不必從另一種語言中獲取設計模式。 設計模式可以寫成非常簡單和簡短的形式。
Java中最常用的設計模式是什麼?
您會在 java 中找到許多設計模式。 最常用的設計模式是工廠模式。 它在企業開發中有很多應用。 它有助於消除對應用程序中具體類的依賴。 讓我們舉一個現實生活中的例子。 在電子商務應用程序中,您可能需要在測試和生產環境中創建用戶對象。 用戶類可能有許多子類,如 Admin、Shopkeeper、Seller、User 等。工廠模式中常見的 main 方法如下所示: public class UserFactory { public static Object create () { User user = createAdmin (); // 查看是否允許 admin 返回用戶 ; // 返回當前用戶 } }. 在這裡查看用戶類如何不依賴於具體類。 儘管它不是一個完整的示例,但它向您展示了工廠模式的工作原理。