簡體   English   中英

如果只聲明方法簽名,為什么我們需要接口?

[英]Why do we need interfaces if it only declares the method signature?

接口中聲明的所有方法都是抽象的,我們必須在實現接口的 class 中重寫帶有簽名和主體的方法。 那么使用界面有什么意義呢?

通常,接口被認為是開發人員之間的合同。 我的意思是,假設您正在開發一個專有的 API 供公眾使用。 現在您不希望每個人都能夠直接看到您的源代碼,了解您是如何實現某些東西的,因為那是您的整個產品。 相反,您要做的是公開一個接口,該接口向其他開發人員顯示期望的參數類型和返回值,並保證您的代碼將實現它的用途,而不必透露它是如何工作的。

這也允許代碼的可擴展性,因為通過允許某個方法接受接口而不是特定實現,然后您允許更改或可能改進實現,只要它仍然實現相同的接口並因此遵守相同的保證。

定義一個接口就像說“我希望能夠擁有這些我可以調用的函數,它們接受這些參數並返回這些值,但我不在乎你是怎么做的”

接口就像名字所暗示的那樣,提供了一些東西的接口。 因此,假設我想要一個應用程序,它從用戶那里獲取輸入並將其存儲在數據庫中,然后根據用戶的請求從數據庫中獲取數據以顯示。 我可以簡單地擁有一個接口來聲明從數據庫存儲和獲取的方法。 所以接受輸入和顯示數據的用戶表單可以使用這些方法。 如果我決定更改數據庫,這使我可以靈活地更改實現。 而且我不必使用接口中聲明的方法更改部分。 因為所有的實現都會有這些方法。

我認為這個文檔( https://docs.oracle.com/javase/tutorial/java/concepts/interface.html )也會有幫助。

我想我可以在這里再添加一件事,假設我想使用 facebook(或其他應用程序,如果你喜歡)提供的界面。 我可以通過提供的方法列表 go 來查看哪種方法適合我。 它使事情變得比通過所有實現細節必須 go 更簡單。 這就是我認為@Tarun 在上面的答案中所說的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM