-
2021-07-19 11:02:01
先言:接口分为
程序内部使用的接口
和系统对外交流的传输接口
。一般情况下,我们口头说的接口都是后者。-
HTTP接口:基于HTTP协议的开发接口.这个并不能排除没有使用其他的协议。
-
API接口:API(Application Programming
Interface)应用程序编程接口,应用也包括网络应用程序,就像api文档基本上就是使用说明书,API接口可以简单理解成“应用程序使用接口”。 -
RPC接口:Remote Procedure Calls 远程过程调用 (RPC)
是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,
因此,RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。
RPC(远程过程调用)是一项广泛用于支持分布式应用程序(不同组件分布在不同计算机上的应用程序)的技术。RPC的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果,没有语言限制。 -
RMI:RMI(Remote Method Invocation,远程方法调用)RMI是针对于java语言的, RMI允许您使用Java编写分布式对象
-
WebService接口:Webservice是系统对外的接口,比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
-
RESTful : 简称 REST,是描述了一个架构样式的网络系统,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为:
1.网络上的所有事物都可以被抽象为资源(resource)
2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
3.所有的操作都是无状态的
关于RPC和RMI的区别,各类博客有很多,我就不说了。Webservice和RESTful,我不知道你说的是那个(Webservice这个是个大类,包括RESTful )你可以看看 SOAP Webservice和RESTful Webservice的区别。不要刻意去混淆找区别,有些是从不同角度、层次而言。也有可能同一个东西兼顾(不同层次、角度的兼顾)。在如今这个软件泛滥的年代,不同的人叫法不同很多,偷换概念的也有很多。
更多相关内容 -
-
C++接口类
2019-03-12 21:39:04在C++中仅含有纯虚函数的类成为接口类,也就是没有数据成员 只有纯虚函数的成员函数 例如~ class Shape { public: virtual double calcArea()=0; virtual double calcPerimeter()=0; } 接口类呢更多的是一种...在C++中仅含有纯虚函数的类成为接口类,也就是没有数据成员 只有纯虚函数的成员函数
例如~
class Shape { public: virtual double calcArea()=0; virtual double calcPerimeter()=0; }
接口类呢更多的是一种能力或协议~
#include<iostream> #include<string> using namespace std; class Flyable { public: virtual void takeoff()=0; virtual void land()=0; }; class Plane : public Flyable { public: Plane(string code) { m_strCode=code; } virtual void takeoff() { cout<<"Plane--takeoff"<<endl; } virtual void land() { cout<<"Plane--land"<<endl; } void printCode() { cout<< m_strCode <<endl; } private: string m_strCode; }; class FighterPlane :public Plane { public: void takeoff() { cout<<"FighterPlane--takeoff"<<endl; } void land() { cout<<"FighterPlane--land"<<endl; } }; void flyMatch (Flyable *f1,Flyable *f2) { f1->takeoff(); f1->land(); f2->takeoff(); f2->land(); } int main() { Plane p1("001"); Plane p2("002"); p1.printCode(); p1.printCode(); flyMatch(&p1,&p2); system("pause"); return 0; }
-
Python3之接口类(InterfaceClass)浅谈
2020-03-14 20:38:53文章目录一、接口类的定义与作用二、图形的接口类示例三、@property让方法秒变“属性” 一、接口类的定义与作用 接口类实际上就是一个规范子类的类,只不过这个类与别的类不太一样,接口(内部的方法)本身...日期:2020年3月14日
作者:Commas
注释:学习就是为了忘记,什么是接口类,怎么将方法变为属性;
如果您想了解更多有关Python的知识,那么请点《我的Python浅谈系列目录》
一、接口类的定义与作用
接口类
实际上就是一个规范子类的类,只不过这个类与别的类不太一样,接口(内部的方法)本身不实现,子类
继承接口类,子类需要实现接口的功能,否则无法正常工作。那么作用也毋庸置疑,就是规范好子类的接口。
定义一个接口类,我们需要abc模块
(抽象类基类,Abstract Base Classes)中的两个工具abstractmethod, ABCMeta,详情如下:工具 说明 abstractmethod 抽象类的装饰器,接口类中的接口需要使用此装饰器 ABCMeta 抽象类元类 from abc import abstractmethod, ABCMeta def 接口类名(metaclass=ABCMeta): """定义您的接口类""" @abstractmethod def 方法1(self): """定义接口名,但不需要实现其功能,由继承此类的子类实现""" pass @abstractmethod def 方法2(self): """定义接口名,但不需要实现其功能,由继承此类的子类实现""" pass
二、图形的接口类示例
接下来我们来定义一个
图形的接口类GraphicRule
,提供两个接口,如下:接口 说明 area 图形的面积 perimeter 图形的周长 接口类仅提供接口名的约束,不实现其接口功能,由其子类的
矩形类Rectangle
实现,如果子类Rectangle不实现接口类GraphicRule中所有的接口,即area和perimeter,在实例对象的时候,会抛出异常,如我们不实现接口perimeter,将会得到以下异常:TypeError: Can't instantiate abstract class Rectangle with abstract methods perimeter
在我们看到这个异常的时候,我们就知道我们还有什么接口没有实现,异常的解决还不是so easy的事情,完整的示例代码如下:
from abc import abstractmethod, ABCMeta class GraphicRule(metaclass=ABCMeta): """图形接口类""" @abstractmethod def area(self): """面积""" pass @abstractmethod def perimeter(self): """周长""" pass class Rectangle(GraphicRule): """矩形类""" def __init__(self, b, h): self.b = b self.h = h def area(self): return self.b*self.h def perimeter(self): return (self.b+self.h)*2 # 实例矩形类的一个对象 rect1 = Rectangle(3, 7) print("矩形面积:{}".format(rect1.area())) print("矩形周长:{}".format(rect1.perimeter())) # =======控制台输出结果======= 矩形面积:21 矩形周长:20
三、@property让方法秒变“属性”
上面我们已经完成了一个接口类的定义以及使用接口类,但是看着那两个接口的调用,还是感觉有点别扭。面积area与周长perimeter,在我们的认知中,应该属于一个对象的属性才对;而获得面积get_area与获得周长get_perimeter,看上起更像一个对象的方法。那么我们有没有可能将方法转为属性呢?答案是有的,使用@property装饰器,让方法秒变属性,如下:
@property def 方法名(self): pass
所以示例可修改为:
from abc import abstractmethod, ABCMeta class GraphicRule(metaclass=ABCMeta): """图形接口类""" @abstractmethod def area(self): """面积""" pass @abstractmethod def perimeter(self): """周长""" pass class Rectangle(GraphicRule): """矩形类""" def __init__(self, b, h): self.b = b self.h = h @property def area(self): return self.b*self.h @property def perimeter(self): return (self.b+self.h)*2 rect1 = Rectangle(3, 7) # (1)注释以下的方法调用 # print("矩形面积:{}".format(rect1.area())) # print("矩形周长:{}".format(rect1.perimeter())) # (2)属性调用 print("矩形面积:{}".format(rect1.area)) print("矩形周长:{}".format(rect1.perimeter)) # =======控制台输出结果======= 矩形面积:21 矩形周长:20
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/104862886 -
常见的接口分类
2019-11-21 11:48:12API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。 二、按照接口表现形式,分类 序号 接口 基于或支持的协议 描述 1 HTTP 接口 HTTP...一、前言:
API作为应用程序编程接口,(API:Application Program Interface),可以使用不同的编程语言进行API的开发
API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。二、按照接口表现形式,分类
序号 接口 基于或支持的协议 描述 1 HTTP 接口 HTTP协议 使用广泛、轻量级、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。 2 RPC 接口 HTTP、TCP、UDP、自定协议 RPC技术是指远程过程调用,它本质上是一种Client/Server模式,可以像调用本地方法一样去调用远程服务器上的方法,支持多种数据传输方式(Json、XML、Binary、Protobuf等) 3 Web Service 接口 基于http协议的soap协议的封装和补充 Web Service其实是一种概念,我们可以将以WEB形式提供的服务称为Web Service,所以像RESTful、XML-RPC、SOAP等都可以当成是Web Service的一种实现方式。 4 RESTful HTTP协议 它不是一种规范,而是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。 5 WebSocket udp、tcp 是一个底层的,双向通信协议 ,适合于客户端和服务器端之间信息实时交互 6 FTP TCP/IP 协议组中的协议之一 文件传输协议,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件 二、其他区别:
(1)把socket和http、webservices等等放在一起对比不是很合适,所谓http等的都是对socket进行了一次包装而已,socket更加底层。(2)不过Web Service接口和HTTP接口存在一些细小区别就是,Web Service接口支持更复杂的对象,而HTTP接口更多的就是传输字符串或者JSON文本。
三、四种类型:
接口 类型 描述 RPC 远程过程调用 通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信 SQL 标准查询语言 是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享 FTP 文件传输 文件传输通过发送格式化文件,实现应用程序间数据共享 信息交付 信息交付 指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享 四、按照接口访问形式,分类:
分类 使用用户令牌,通过Web API接口进行数据访问 这种方式,可以有效识别用户的身份,为用户接口返回用户相关的数据,如包括用户信息维护、密码修改、或者用户联系人等与用户身份相关的数据。 使用安全签名进行数据提交 这种方式提交的数据,URL连接的签名参数是经过安全一定规则的加密的,服务器收到数据后也经过同样规则的安全加密,确认数据没有被中途篡改后,再进行数据修改处理。因此我们可以为不同接入方式,如Web/APP/Winfrom等不同接入方式指定不同的加密秘钥,但是秘钥是双方约定的,并不在网络连接上传输,连接传输的一般是这个接入的AppID,服务器通过这个AppID来进行签名参数的加密对比,这种方式,类似微信后台的回调处理机制,它们就是经过这样的处理。 提供公开的接口调用,不需要传入用户令牌、或者对参数进行加密签名 这种接口一般较少,只是提供一些很常规的数据显示而已。 -
c++ 如何编写接口类(interface)
2018-08-15 23:46:08接口类简介: 接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。 用c++实现接口类时需要... -
idea逆向生成接口类
2020-07-01 11:50:44通过已经存在的实现类,逆向生成对应的接口类 -
C++:如何正确的定义一个接口类
2018-06-18 15:54:38C++中如何定义接口类?C++中如何定义标识接口类? -
C++:如何正确的使用接口类
2018-07-02 18:22:05前一篇文章中讲过C++中如何正确的定义接口类,那定义好的接口类如何正确使用?本篇将细细说说。 提供接口与实现 首先,声明一个接口: // circle.h // 圆的接口类 class Circle { public: virtual ~Circle() {}... -
IntelliJ IDEA 接口类跳转到实现类及实现类跳转到接口
2019-08-25 17:10:00接口和实现类的互相跳转是使用IntelliJ IDEA过程中常用的操作,在此...2.Service实现类跳转到接口类方法 操作:在实现类的方法上使用快捷键Ctrl+U,或点击下图所示位置 3.Dao接口跳转到实现类(mapper.xml文件) ... -
创建实现Java的接口类的对象
2019-02-01 12:39:32public interface Jiekou { ...//实现接口的class public class Jiekouimple implements jiekou{ public void s(); } public class Test( public static void main(String[] args) { ... -
idea如何快速同步实现接口类新增的方法
2019-09-03 15:04:30众所周知,接口类新增了一个新的方法以后,我们需要对这个接口类的所有实现类都进行方法重写,如果实现类非常多的话,手动一个个的修改就相当的让人恼火,idea中快捷键可以帮助我们解决这个烦恼: 首先在接口类中将我们的... -
如何根据接口文档,写一个接口类(举例说明)
2019-08-06 19:40:06通过接口文档,需要弄清楚下面几条信息: 1、确定请求方式——post 2、拿到URL: http://11.11.111.111:8080 3、接口的路径:/a/b 4、请求参数 hostName,hostType,fromTime,endTime,collectType... -
spring MVC里面service接口类的作用
2017-11-07 16:37:06现在编程是面向接口编程,举个例子,假如我的代码以前是哪mybaties写的,现在我要那hibernate写,我就只用修改service的实现类。我的Control层调用的是service的接口类,所以我就不用修改Control层的内容。 -
C++中抽象类和接口类的区别
2014-04-14 20:11:55最近您好像又越来越多地提起了抽象类这个概念,我想问问是不是最近在实验的过程中发现了一些我们以前未曾注意到的对纯接口类进行多重继承的好处,抑或是您认为我们以前对抽象类重视得不够? Bjarne Stroustrup... -
@Service、@Repository注解是放到service或者dao类的实现类还是接口类中
2017-08-14 16:04:07@Service、@Repository注解是放到service或者dao类的实现类还是接口类中 应该很多刚开始接触Spring和springMVC的小白,都会像我当时学习的时候一样,心理都会有这么一个问题,@Service、@Repository注解是放到... -
Java抽象类和接口类
2022-05-29 12:19:00本章讲述java中抽象类和接口类的定义,实现,注意事项,抽象类和接口类的区别 -
用Aspectj拦截接口类中的所有方法
2017-08-02 23:35:38先来看一个问题,如果业务代码中有一...接口类: public interface Foo { public void hello(String say); public void goodBye(); } 实现类: public class SimpleFoo implements Foo { public void hel -
C++学习之多态篇(纯虚函数和接口类)
2016-02-03 11:11:111.纯虚函数形式 2.纯虚函数内存结构 分析:Shape类中有一个虚函数和纯虚函数,所以它肯定有一个虚函数表和...纯虚函数肯定是某个类的成员函数,包含纯虚函数的类就叫做抽象类。抽象类的特点: (1)因为纯虚函数无法 -
Swagger UI 隐藏指定接口类或方法
2016-12-09 14:24:09swagger的一个最大的优点是能实时同步api与文档,但有些时候我们不想全部公开接口,而要隐藏或屏蔽一些接口类或方法,swagger也是支持的, 只需要设置一下DocumentFilter方法。 这方面的资源比较少,只找到了... -
接口类不可以做bean
2018-01-01 09:27:07注解一个DAO类作为一个bean,即使有实现类,容器并不能创建该接口的作为Bean. bean类需要一个无参构造方法,显然接口是没有的. 注解传入的只是一个接口,其实现类容器开始是不能获知的.所以,不能想当然地觉得容器能用... -
java中接口,匿名类,实现这个接口类的方法
2016-01-06 04:53:06不能直接new一个接口,但是接口再被实现后,再new这个接口,并写上实现这个接口的方法,那么new的这个接口如果没有赋值引用,那么new的这个接口就是一个匿名类,这么理解对不 -
接口类(interface),实现类(class),继承(extends),实现(implements)
2017-08-10 17:11:50接口类: @Service public interface AppCertMsgService { public Map, Object> saveCardMsg(AppCertMsg appCertMsg, String channelNo); public Map, Object> getCardMsgByCertNo(String certNo); } 实现... -
SpringCloud中初始化FeignClient接口类加载不到异常
2018-07-09 13:09:58主要错误信息 首次访问接口 非首次访问接口 Could not ... 项目配置 解决方法 controller实现FeignClient接口 报错原因 工具类初始化接口时,接口没有实现类导致初始化失败,进而导致工具类初始化失败引起错误 -
ssm项目中 @Autowired 注解在接口类上却是注入的是他的实现类
2018-03-06 14:35:31// 告诉spring mvc这是一个控制器类 @Controller @RequestMapping("") public class CategoryController { @Autowired CategoryService categoryService; @RequestMapping("listCategory") ... -
关于C++的接口类
2012-07-23 20:04:14转 作者: Crazii @ CSDN ...通常我们把只有纯虚函数的抽象类,叫做接口类(Interface Class),或者是协议(Protocol). 习惯上类名会用大写I开头,但这不是必须的.比如下面的一个类声明. [cpp] view plaincopy -
MyBatis Spring整合配置映射接口类与映射xml文件
2014-08-20 14:55:48Spring整合MyBatis使用到了mybatis-spring,在配置mybatis映射文件的时候,一般会使用MapperScannerConfigurer,MapperScannerConfigurer会自动扫描basePackage指定的包,找到映射接口类和映射XML文件,并进行注入。... -
接口和抽象类(超详细)
2020-09-08 21:49:26首先先来说一下抽象类 要想了解抽象类先看一下抽象方法,抽象方法是一个特殊的方法,他只有声明没有具体的实现。抽象方法用abstract关键字修饰。有抽象方法的类就就是抽象类,抽象类也有abstract关键字修饰。 需要... -
JAVA-获取实现了指定接口类的所有实现类或继承了指定类的所有子类
2015-04-04 19:54:26实际编程过程中,我们可能遇到这样的问题,就是获取实现了指定接口类的所有实现类。 本工具类就提供了这样的功能。下面是工具类的详细解析: /** * 查找指定路径下面实现指定接口的全部类 * @author longyin * ... -
接口和接口实现类,接口与抽象类
2019-02-07 16:34:56为了弥补这个不足,Java中的接口可以实现多重继承,一个类可以实现多个接口。 定义和实现接口 接口的定义包括接口声明和接口体两部分。接口体包括属性常量和抽象方法。 [public] interface 接口名 { 属性常量 ...