Short Description
Components and Interfaces define and/or implement small pieces of modular code that can be reused in the codebase.
Component
A component is a small piece of reusable code.
It is usually one of several in a module.
A module is a binary library that groups components that provide some functionality.
Interface
A interface defines the communication channels between components.
These interfaces are reused to define unique components with the same characteristics and communication channels.
Long Description
Component
In Mozilla, XPCOM is used to break up the software projects into components.
For example, Necko is the network library which is made up of several components such as HTTP, FTP, and other network protocol implementations.