例的一个语言是Java，，它没有组件级别的模块系统。Java有一个包（package）系统，但Java软件组件通常由多个Java包组成——并且在任何情况下，接口编程可以提供优于仅使用Java包的优势，即使组件仅由单个Java包组成。基于接口的编程将应用程序定义为组件的集合，其中组件间的应用程序接口（API）调用可能只通过抽象化接口完成，而没有具体的类。类的实例化一般通过使用如工厂模式等技术的其他接口完成。这种方式被认为增加了应用程序的模块性并因而增加了。但是，有必要谨慎考虑——仅将应用程序分解成通过