Pattern: Split what and how when naming

February 2nd, 2021

 

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: ??