The ideal is low coupling and high cohesion. That&#x27;s supposed to mean your system is composed of parts that can be understood separately. Low coupling means that the innards of each module are isolated from the others. High cohesion means that each module presents a clear and distinct purpose.<p>Thinking in terms of interfaces (in the general sense) helps towards this ideal. If an interface is cluttered with dozens of functions, it&#x27;s a sign that it could be refactored into more cohesive units.