基于接口编程Interface-based programming)也称基于接口的架构interface-based architecture),它是一种在没有模块系统的面向对象程序设计语言中的组件层面实现模块化编程架构模式。符合此例的一个语言是Java,截至2015年 (2015-Missing required parameter 1=month!),它没有组件级别的模块系统。Java有一个包(package)系统,但Java软件组件通常由多个Java包组成——并且在任何情况下,接口编程可以提供优于仅使用Java包的优势,即使组件仅由单个Java包组成。

基于接口的编程将应用程序定义为组件的集合,其中组件间的应用程序接口(API)调用可能只通过抽象化接口完成,而没有具体的。类的实例化一般通过使用如工厂方法模式等技术的其他接口完成。

这种方式被认为增加了应用程序的模块性并因而增加了可维护性英语Maintainability。但是,有必要谨慎考虑——仅将应用程序分解成通过接口通信的任意组件本身不能保证低耦合性或高內聚性,这两项通常被认为是可维护性的另外两项关键属性。

当第三方(或同一个组织内的另一个团队)为已建立的系统开发了额外的组件或插件时,可以使用基于接口体系结构。Eclipse IDE的代码库就是基于接口编程的一个例子。Eclipse插件插件供应商只需开发满足父应用程序供应商Eclipse基金会指定接口的组件。在Eclipse中,哪怕“Java开发工具”等原始组件本身也是一个插件。这有点像移动电话制造商制定的移动充电器接口(引脚布局、预期直流電电压等)和,制造商和第三方都制造符合这种标准接口规范的手机充电器。

参见

编辑

参考资料

编辑

📚 Artikel Terkait di Wikipedia

Mixin

interface(英语:Interface (object-oriented programming))。这种设计模式实现了依赖反转原则。 Mixin最初出现在Symbolics.com的面向对象Flavors(英语:Flavors (programming language))系统(由Howard

JTAG

j-trace, a USB to Trace Mictor and JTAG interface for ARM cores Lauterbach Datentechnik GmbH produce JTAG-based in-circuit emulators the most popular being

Curry語言

target PAKCS(页面存档备份,存于互联网档案馆) A major Curry implementation with a WWW interface, which uses Prolog as the target KiCS2(页面存档备份,存于互联网档案馆) A Curry implementation

基於原則設計

基於原則設計(Policy-Based Class Design)又名policy-based class design 或 policy-based programming, 是一種基於C++電腦程式設計規範,以原則(Policy)為基礎,並結合C++的模板超編程(template

Python

Features of a programming language, whether syntactic or semantic, are all part of the language's user interface. And a user interface can handle only

分区全局地址空间

memory)。 夫琅和费协会开发的全局地址空间编程接口(英语:Global Address Space Programming Interface)。 并行编程模型 非阻塞同步(英语:Non-blocking synchronization) 非统一内存访问(NUMA) 处理器亲和性

数字书目索引与图书馆项目

等。最早的DBLP只包含数据库系统和逻辑编程相关方面的文章,所以DBLP之前也可以是DataBase systems and Logic Programming的缩写。随着更多的其他计算机领域的内容的加入,发展成今天的DBLP。DBLP项目由德国特里尔大学的Michael Ley负责开发和维护。截至2018年已经有超过3

Windows管理规范

(computer programming))组件提供信息和通知,並提供了一个操作系统的接口。WMI是微软对分布式管理工作组(英语:Distributed Management Task Force)(DMTF)的基于Web的企业管理类(英语:Web-Based Enterprise