Interface name vs Implementing class name

Interface name

  • what it does
  • point of view = “user” object

Implementing class name

  • how it does it
  • point of view = implementation

(src: Book: Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)


Method name should describe what it does, not how

Method name should be

  • what it does
  • point of view = “user” object

instead of

  • how it does it
  • point of view = implementation

src: ??