Choose Names at the Appropriate Level of Abstraction

Names shouldnt give away implementation. ex

public interface Modem {
  boolean dial(String phoneNumber);
  ...

What if the modem isnt over a phone line (like hard wired, usb, coaxial, etc.)? Having `dial` and `phoneNumber` exposes the implementation. It should instead be

public interface Modem {
  boolean connect(String connectionLocator);
  ...



bj 2019-09-22