Public interface

In computer science, a public interface is the logical point at which independent software entities interact.

The entities may interact with each other within a single computer, across a network, or across a variety of other topologies.

It is important that public interfaces will be stable and designed to support future changes, enhancements, and deprecation in order for the interaction to continue.

Various methodologies, such as refactoring, support the determination of interfaces.

Refactoring generally applies to the entire software implementation, but is especially helpful in properly flushing out interfaces.