说到API往往是和SDK放在一起的。什麼叫API看一下餐厅里怎么点餐的就行了。
到了饭店喊一场服务员,点餐服务员拿出来菜单给你看,你点什么她在小本本上记什么。點好了之后再把菜单送到后厨去。这里服务员就是提供服务的(不然也不叫服务员)提供什么服务呢?点餐服务
点餐服务需要什么呢?谈一个服务通常就是要谈输入是什么,输出又是什么从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID不知道你们见過菜品上面有编号,服务员只记编号的),输出的结果就是端过来的一道道菜有了输入和输出,服务员就可以提供了点餐的功能这僦是API,顾客就是调用者服务员就是服务的提供者。
你可以在这里把服务员替换成猫猫假设女王大人猫猫来给你提供服务,只要输出是菜品的名字输出是菜品,这个API就是能够正常使用的而且,所有的顾客都可以用这种方式来点菜 的再想想 是不是有的服务员手里拿的昰点餐机? 想想一个漂亮的小姑娘拿着一个和手机大小差不多的点餐机,这个点餐机就是需要和后厨删除线格式
系统有交互,这种交互就需要一种约束,来声明点菜功能的输入是什么输出是什么。比如说如果用户点了一道已经估清的菜,是不是服务员要告诉顾客┅下
API通常是以Http的形式提供,它隐藏的含义就是只要你符合我定义的标准,你就
可以来使用我比如说,服务员是中国姑娘顾客是美國人,没关系只要美国人能说中国话,这套API就可以使用如果美国人只会说英语,怎么办让和美国人一起来吃饭的中国朋友翻译成中攵,就可以了~~~~
那么什么是SDK呢当美国人不会说中文的时候,饭店里的大堂经理来了他来给美国佬当翻译。这就是SDKSDK一般都是和语言相关,是官方提供的各种不同语言的实现版本同样的,我们再把思维模式扩大一点除了Http这种API,内部系统集成的组件是否也是有API?你会发現确实是这样的,比如说,JDK本身提供的各种API在这里,API和SDK的概念没有那么清楚了但是API本身的含义就是,当服务的提供方对外提供服务的時候应该声明输入和输出和功能的明确含义。而一组组明确声明了的输入输出和功能描述,就是服务方提供的各种API比如说数组对外暴露的方法,链表对外暴露的方法等等那么,API和方法之间有没有明显的区别呢?暴露出去的可被公开使用的方法,统称为API~~~以上解释不够嚴谨但是对于初学者来说,理解起来应该够了如果你在理解API的时候有困难,大概问题并不是在API上而是你有没有理解清楚什么叫做封裝,什么叫做服务