title: How to name a base class name right?
body: <p>I have a model like this image:</p>
  
  <p><a href="https://i.stack.imgur.com/ja92Y.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ja92Y.png" alt="1"></a></p>
  
  <p>Then, I have created some classes based on the model:</p>
  
  <pre><code>public abstract class AccountManager
  {
      public void LockAccount(string userId)
      {
  
      }
  }
  
  public class AdministratorTool : AccountManager
  {
      public void DeleteAccount(string userId)
      {
  
      }
  
      public void UnlockAccount(string userId)
      {
  
      }
  }
  
  public class ModeratorTool : AccountManager
  {
  
  }
  
  public class MemberTool : AccountManager
  {
  
  }
  </code></pre>
  
  <p>My question: What is the name that I should change with <code>AccountManager</code>?</p>
  
  <p>I want to do that because <code>Account manager</code> means: provides some methods to do with an account.</p>
  
  <p>Because <code>DeleteAccount</code> and <code>LockAccount</code> do exactly the same (working with an account), so, putting <code>DeleteAccount</code> and <code>LockAccount</code> outside <code>AccountManager</code> will make changes.</p>
  
  <p>If I still want to keep the two methods inside <code>AdministratorTool</code>, I need to change the name of <code>AccountManager</code>.</p>
  
  <p>So, can you give me a name for that?</p>
  
  <p>And...my sub question is: may you give me some tips to name a class? There are several questions about how to create a base/derived class but naming a class name.</p>
  
  <p>Thank you!</p>
  
  <p>p/s: this question comes from I'm not good at English :((</p>