title: Requiring subclasses to implment method without being public
body: <p>I have the following interface:</p>
  
  <pre><code>import * as Bluebird from "bluebird";
  import { Article } from '../../Domain/Article/Article';
  
  export interface ITextParsingService {
      parsedArticle : Article;
      getText(uri : string) : Bluebird&lt;any&gt;;
  }
  </code></pre>
  
  <p>and the following class that implements such an interface:</p>
  
  <pre><code>import * as Bluebird from 'bluebird';
  import * as requestPromise from 'request-promise';
  import ApplicationConfiguration from '../../../../config/ApplicationConfiguration';
  import { ITextParsingService } from '../ITextParsingService';
  import { Article } from '../../../Domain/Article/Article';
  
  export class DiffbotTextParsingService implements ITextParsingService {
      public parsedArticle: Article;
      private articleApiEndpoint;
  
      constructor() {
          this.articleApiEndpoint = "https://api.diffbot.com/v3/article";
      }
  
      public getText(url: string) : Bluebird&lt;any&gt; {
          return requestPromise(this.articleApiEndpoint, {
              qs : {
                  "url" : url,
                  "token" : ApplicationConfiguration.Diffbot.developerToken
              },
              headers : {
                  'User-Agent' : 'Request-Promise'
              },
              json : true
          }).then((diffbotResponse) =&gt; {
              this.mapReponseToArticle(diffbotResponse.objects[0]);
          }).catch((errorMessage) =&gt; {
              return errorMessage;
          })
      }
  
      private mapReponseToArticle(response : any) {
          this.parsedArticle = new Article(response.diffbotUri,
                                           response.title,
                                           response.author,
                                           new URL(response.authorUrl),
                                           response.text,
                                           new URL(response.pageUrl),
                                           new Date(response.date),
                                           response.humanLanguage);
      }
  }
  </code></pre>
  
  <p>How can I make it a requirement that all classes that implement <code>ITextParsingService</code> also implement <code>mapResponseToArticle</code>, which basically takes the service's response and maps it to a common domain object? I don't see any reason why it should be a public method, but I also can't see how I can enforce such a requirement from implementing classes. Any suggestions for an alternative pattern? </p>