C# 如何正确命名基类名称?

C# 如何正确命名基类名称?,c#,C#,我有一个像这样的模型: 然后,我基于模型创建了一些类: public abstract class AccountManager { public void LockAccount(string userId) { } } public class AdministratorTool : AccountManager { public void DeleteAccount(string userId) { } public void

我有一个像这样的模型:

然后,我基于模型创建了一些类:

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
{

}
我的问题:我应该向AccountManager更改什么名称

我想这样做是因为客户经理的意思是:提供一些处理客户的方法

因为DeleteAccount和LockAccount对帐户的处理完全相同,所以,将DeleteAccount和LockAccount放在AccountManager之外将进行更改

如果我仍然想在AdministratorTool中保留这两个方法,我需要更改AccountManager的名称

那么,你能给我一个名字吗

还有…我的子问题是:你能给我一些给班级命名的提示吗?关于如何创建基类/派生类但命名类名,有几个问题

谢谢大家!


p/s:这个问题来自于我不擅长英语:

特权通常会随着你在层级结构中的地位越来越高而积累-你可以在现实世界中看到同样的事情-CTO是一种特定类型的经理,而经理是一种特定类型的员工。作为一名首席技术官并不会剥夺您在担任低级别员工时所享有的任何特权。例如,没有人会告诉首席技术官他们不能使用公司的浴室,因为这是所有员工共享的特权

所以,除非一个成员可以做一些版主不能做的事情,或者版主可以做一些管理员不能做的事情,否则我甚至不会为抽象基类而烦恼。 我只需要拥有Member类,让版主类继承Member并使用版主及以上能力对其进行扩展,让管理员类继承版主并使用管理员能力对其进行扩展:

public class Member
{
     public void LockMyAcount() {/* implementation */}
}

public class Moderator : Member
{
     public void LockAccount(string userId) {/* implementation */}
}

public class Administrator : Moderator 
{
     public void DeleteAccount(string userId) {/* implementation */}
     public void UnlockAccount(string userId) {/* implementation */}
}

后缀基有时是抽象类的好名字,而前缀I是接口的好名字,若你们真的不知道它的好名字是什么的话。这不是英语好坏的问题,而是这门学科的知识问题。在书中如何称呼事物通常被认为是良好的命名实践。因此,你需要阅读一些与你正在研究的主题相关的书籍或主题。最重要的是遵循/保持相同的模式。一旦您开始命名基类xxxManager,请保持该格式。这是一个离题的话题,但继承通常不是授权模型的好工具。非常感谢。我已经读了你的答案很多次了,我明白了:员工拥有的一切都可以分享给老板,而老板拥有的东西却可以分享给员工。或者……我错了,你是对的。老板拥有普通工人所拥有的一切,还有更多。在OOP中,这就是继承——派生类拥有它的父类所拥有的一切,然后还有更多。