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)
代理严格来说就是两个子类共同实现一个接口,一个子类负责真实的业务实现,另外一个子类完成辅助业务的主题的操做。
本质:全部真实的业务操做,都会有与之辅助的功能类共同完成。
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 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。