title: Public or private - Angular 2 component class methods confusion
body: <p>I struggle to understand which methods should be private and which should be public in component class.</p>
  
  <p>It seems to be fairly easy in service to judge if method is public or private e.g:</p>
  
  <pre><code>export class MyServiceClass {
    private _cache = {}; // this value is private and shouln't be accessed from outside
    public accessCache(){ // it's public as it's an API method
      return this._cache;
    }
    public setCache(newVal){
       this._cache = newVal;
    }
  }
  </code></pre>
  
  <p>Following that logic all methods in component should be private because none of the methods should be exposed outside of the class.
  (according to <a href="https://stackoverflow.com/questions/34574167/angular2-should-private-variables-be-accessible-in-the-template"><strong>to that post</strong></a> component and its view are one entity)</p>
  
  <pre><code>export class MyComponent {      
    private _getRandomNumbers(){ // this is used in view only
      /*..*/
    }
  }
  </code></pre>
  
  <p>There is no tragedy but then in <a href="https://www.youtube.com/watch?v=C0F2E-PRm44" rel="nofollow noreferrer"><strong>this video</strong></a> you can learn that only public methods of component should be unit tested. By following above I can't find any reason to have public methods in component class but I still have some methods which are worth testing (especially methods used in view). It means that I'm completely lost in the meaning of private and public methods in angular world.</p>
  
  <p>So my question is simple:</p>
  
  <p>which methods in components should be marked as public and private.</p>