API

API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。前端

抽象類與普通類相比  約定了子類實現要求  單繼承侷限java

所以,提出了接口web

在之後的開發設計原則,接口優先編程

1.接口的基本概念後端

接口是抽象方法和全局常量的集合,在java中可使用interface關鍵字定義設計模式

interface IMessage  (在開發中接口名稱前面須要加一個I)服務器

子類須要用implements關鍵字來實現接口,同時一個子類能夠實現多個接口,能夠利用接口實現多繼承的概念。網絡

class Message implements IMessage,INews{}框架

一個子類實現了多個接口,對於接口的子類不是抽象類,必須覆寫接口中的所有方法。前後端分離

當一個子類繼承了多個接口以後,接口對象經過子類進行實例化,那麼多個父接口之間是能夠互相轉換的,可是是經過子類轉換的,實例化的時候要注意new後面的實例化,不要盯着名稱看。

2.接口的使用限制

接口裏面只容許存在public權限;

接口中只是抽象方法和全局常量;

在編寫的接口時候,開發原則,接口中只提供抽象方法,不多會在接口中看見全局常量,所以接口的方法public不會省略,可是abstract會省略;

一個子類先使用extends繼承,再使用implements實現接口;

定義抽象類的時候會在抽象類的名稱表現出來;

一個抽象類可使用implements實現多個接口,可是接口不能繼承抽象類;

一個接口可使用inplements實現多個父接口;

接口能夠定義一系列內部結構,包括:內部普通類、內部抽象類、內部接口,使用static定義的內部接口至關於外部接口;

3.使用接口定義標準

使用接口和對象對象多態性的結合,對於參數的統一更加明確。

接口是設計在類之上的設計抽象。

正常的開發先設計接口,再設計類。

4.接口工廠設計模式(重點)

java實現可移植性的關鍵是JVM,也就是說全部的程序是在JVM上執行,而不一樣的操做系統中有匹配的JVM,至關於:

程序 --JVM--操做系統。

new是整個開發過程當中最大的耦合元兇,在開發之中解耦合的關鍵,須要引入一個第三方。

總結:主方法沒有變化就實現子類的變動,就是工廠模式;

編寫的接口,想取得接口的實例化對象,寫工廠類。

5.接口代理設計模式(Proxy)

 代理嚴格來說就是兩個子類共同實現一個接口,一個子類負責真實的業務實現,另外一個子類完成輔助業務的主題的操做。

本質:全部真實的業務操做,都會有與之輔助的功能類共同完成。

 

WeBAPI

    Web Api,網絡應用程序接口。它包含了普遍的功能,網絡應用經過API接口,能夠實現存儲服務、消息服務、計算服務的能力,利用這些能力能夠進行開發出強大功能的web應用。簡單來講,就是一個接口,好比說,咱們要作先後端分離的項目,前端和後端經過url鏈接,可是咱們如何知道後端的數據是否通了,返回的數據是否正確,因而咱們經過這個接口知道。

爲何使用web API

   Web API最重要的是能夠構建面向各類客戶端的服務。另外與WCF REST Service不一樣在於,Web API利用Http協議的各個方面來表達服務(例如 URI/request response header/caching/versioning/content format),所以就省掉不少配置。

當你遇到如下這些狀況的時候,就能夠考慮使用Web API了。

  • 須要Web Service可是不須要SOAP
  • 須要在已有的WCF服務基礎上創建non-soap-based http服務
  • 只想發佈一些簡單的Http服務,不想使用相對複雜的WCF配置
  • 發佈的服務可能會被帶寬受限的設備訪問
  • 但願使用開源框架,關鍵時候能夠本身調試或者自定義一下框架

Web API的主要功能:

1. 支持基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操做

    經過不一樣的http動做表達不一樣的含義,這樣就不須要暴露多個API來支持這些基本操做。

2. 請求的回覆經過Http Status Code表達不一樣含義,而且客戶端能夠經過Accept header來與服務器協商格式,例如你但願服務器返回JSON格式仍是XML格式。

3. 請求的回覆格式支持 JSON,XML,而且能夠擴展添加其餘格式。

4. 原生支持OData。

5. 支持Self-host或者IIS host。

6. 支持大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

相關文章
相關標籤/搜索