title: Method signature best practices - overloading vs. long name
body: <p>Just wondering what are your thoughts about these two different approaches: overloading methods vs. long/verbose method names.</p>
  
  <p><strong>Update: I am looking for a general pattern / best practice. The following is just an example.</strong></p>
  
  <p>Given an Organisation Structure with parent/child relationships</p>
  
  <pre><code>&gt; OrgUnit
  &gt; - OrgUnit
  &gt; -- OrgUnit
  &gt; -- OrgUnit
  </code></pre>
  
  <p>two methods wich use the same code in great parts to get children for an xml element.</p>
  
  <pre><code>// 1) only 1 level down children
  getSubOrgUnits()
  
  // 2) all levels down
  getSubOrgUnits(boolean includeChildren)
  
  // 3) alternative naming of 1)
  getDirectSubOrgUnits()
  
  // 4) alternative naming of 2)
  getAllSubOrgUnits()
  </code></pre>
  
  <p>So 1 and 2 is using parameters
  And 3 and 4 is using parameterless naming.</p>
  
  <p>What would you go for and why? Also consider that 1) and 2) can get additional parameters which result in stuff like getChilds(true,false,null) but also 3) and 4) may get Names like getDirectSubUnitsExcludeSome()</p>
  
  <p>Can be JAVA specific but a broader view on this is appreciated. </p>