java接口的一些理解(未完待续)
接口有2種:①是程序?qū)用娴慕涌? ? ?②java中用來解決java不能多繼承的問題,還有接口可以做到:不用修改實例名和調(diào)用,只修改實現(xiàn)類,提到代碼復(fù)用。
一、接口測試的理解:
首先別人是寫的網(wǎng)絡(luò)接口歸我們?nèi)ネㄟ^http請求獲取,然后我們在上傳請求頭時是依據(jù)后臺寫的驗證條件決定我們需要不需要上傳請求頭,但是一般情況下:content-type(請求文件格式)是需要寫在headers中的,另外就是token認(rèn)證(看后臺是否需要你登錄情況下才能操作,確定是否上傳該請求頭)。
二、別人寫的網(wǎng)絡(luò)接口供別人調(diào)用(網(wǎng)絡(luò)接口形式):
計算機語言分類有很多,如C、C++、C#、Java、Php、Python等等,她們有各自的特性及擅長的領(lǐng)域,但她們各自又不是全能的。在一個稍微大型一點的項目都會用到多種語言共同完成,那么這些編程語言如何進(jìn)行通信呢。什么意思呢,就是比如說我Java寫的一個方法,其他編程語言要怎么去調(diào)用呢?這就是本文要探討的問題了。
一般來說,方法層面的編程語言通信用的是網(wǎng)絡(luò)接口形式,只暴露出形參和結(jié)果供別人調(diào)用。接口一般分為接口定義者和接口調(diào)用者,定義者可以規(guī)定接收參數(shù)的類型及返回形式,而接口調(diào)用者則只能完全按照接口定義者規(guī)定的參數(shù)進(jìn)行訪問。就叫是我們所說的webService(網(wǎng)絡(luò)服務(wù))。
以前的做法是利用XML作接口格式定義,然后通過Http做通訊和請求,如大名鼎鼎的SOAP,其實現(xiàn)在也是的,只不過現(xiàn)在流行RestFul風(fēng)格的Rest接口形式,但用的還是XML+HTTP,那這兩者有啥區(qū)別呢?最大的區(qū)別就是SOAP返回的主要是XML格式,有時還需要附帶一些輔助文件,而Rest則還可以返回JSON類型的字符串,減少了很多繁亂的XML標(biāo)簽。本文就以Java為例,用她寫一個接口,并讓其他人去調(diào)用,以此來簡單展示接口調(diào)用是怎么樣一個過程。
鏈接1:
https://blog.csdn.net/kevin_gu6/article/details/82120408?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%88%AB%E4%BA%BA%E5%86%99%E7%9A%84java%E6%8E%A5%E5%8F%A3&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82120408
鏈接2:
https://blog.csdn.net/weixin_30535843/article/details/98812359?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159448251319724845022707%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159448251319724845022707&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-6-98812359.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E5%88%AB%E4%BA%BA%E5%86%99%E7%9A%84java%E6%8E%A5%E5%8F%A3
三、java后臺開發(fā)中遇到的接口是怎么回事:
java工作中經(jīng)常說寫一個接口,提供一個接口,這個接口是怎么回事?接口不是沒有實現(xiàn)的嗎?不是應(yīng)該說寫一個方法嗎?每次聽見寫一個接口總感覺很變扭?
回答1:別人要你提供接口肯定是這個接口的實現(xiàn)類也是由你去寫呀,只要接口規(guī)范,別人可以調(diào)用你的寫的實現(xiàn)類,也可以調(diào)用別人寫的實現(xiàn)類。
回答2:
題主是沒體驗到接口的快感,,,
有個例子,,
接口是規(guī)范,是規(guī)矩,,按規(guī)矩辦事,就能夠統(tǒng)一處理,更方便。
假如需求變更了,,,我需要換成樂視電視,,,怎么換?
【不用接口的話】,,,所有調(diào)用都得換,,
【用了接口,,只需還一個地方】
這也是面向?qū)ο笤O(shè)計原則之一,,,【依賴倒置原則】
回答3:接口既可以是指java語法上的接口,也可以是指程序?qū)用娴恼{(diào)用規(guī)范(這里的接口是指合作開發(fā),或者系統(tǒng)之間的調(diào)用,只要按照你寫的規(guī)范把請求返回的參數(shù)獲取到,怎么利用就是別人的事情了,就壓根不需要考慮你程序內(nèi)部怎么實現(xiàn)的了,反正調(diào)了你的接口,你就得給我所有的你本身具有的返回值)。后者和語言上的接口沒有關(guān)系
四:接口實現(xiàn)類似多繼承
題目:
通過動物游泳奔跑飛行來模擬實現(xiàn)多個接口,因為這種情況下,我們需要讓一個類同時繼承多個父類,這件事情在有些編程語言中可以通過多繼承的方式來實現(xiàn),但是JAVA中只支持單繼承,一個類只能繼承一個父類,但是可以同時實現(xiàn)多個接口,這樣也就可以達(dá)到類似于多繼承的效果
(1)
public class Animal {protected String name;public Animal(String name) {this.name = name;} }(2)
public class Fish extends Animal implements ISwimming{public Fish(String name) {super(name);}@Overridepublic void swim() {System.out.println(this.name + "正在用尾巴游泳");} }(3)
public class Frog extends Animal implements IRunning, ISwimming {public Frog(String name) {super(name);}@Overridepublic void run() {System.out.println(this.name + "正在往前跳");}@Overridepublic void swim() {System.out.println(this.name + "正在蹬腿游泳");} }(4)
public class Cat extends Animal implements IRunning{public Cat(String name) {super(name);}@Overridepublic void run() {System.out.println(this.name + " 正在用四條腿跑步");} }(5)
public class Duck extends Animal implements ISwimming, IRunning, IFlying {public Duck(String name) {super(name);}@Overridepublic void fly() {System.out.println(this.name + "正在用翅膀飛");}@Overridepublic void run() {System.out.println(this.name + "正在用兩條腿跑");}@Overridepublic void swim() {System.out.println(this.name + "正漂在水上");} }(6)
public interface IFlying {void fly(); } public interface ISwimming {void swim(); } public interface IRunning {void run(); }(7)
public class Test {public static void main(String[] args) {Cat cat = new Cat("小貓");walk(cat);Duck duck = new Duck("小鴨");walk(duck);Fish fish = new Fish("小魚");swim(fish);Frog frog = new Frog("小青蛙");walk(frog);swim(frog);}public static void walk(IRunning running) {System.out.println("我?guī)е锇槿ド⒉?#34;);running.run();}public static void fly(IFlying flying) {System.out.println("我看見伙伴在飛");flying.fly();}public static void swim(ISwimming swimming) {System.out.println("我?guī)е锇橛斡?#34;);swimming.swim();} }總結(jié)
以上是生活随笔為你收集整理的java接口的一些理解(未完待续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Liferay URL
- 下一篇: ios android耳机,硬件 篇三: