用C#命名类?MSDN推荐的名词?

用C#命名类?MSDN推荐的名词?,c#,.net,class,C#,.net,Class,下面的类定义了一个模板,用于将订单发票打印到公司1 类似地,还有一些单独的类定义了将订单发票打印到各个公司的模板 我已经阅读了关于这一点的问题,以及这些问题在哪里强调了这一点: 使用名词或名词短语命名类 但是,例如 PrintTemplateClient1(一个动词)在这里命名类似乎比使用名词更合适 你知道怎么命名吗 如果这个问题不属于这里,请告诉我,这样我就可以转到相关论坛。您已经在使用一个名词:PrintTemplate。“打印模板”是一种东西。单词“print”也是一个动词这一事实并不改变

下面的类定义了一个模板,用于将订单发票打印到公司1

类似地,还有一些单独的类定义了将订单发票打印到各个公司的模板

我已经阅读了关于这一点的问题,以及这些问题在哪里强调了这一点:

使用名词或名词短语命名类

但是,例如

PrintTemplateClient1
(一个动词)在这里命名类似乎比使用名词更合适

你知道怎么命名吗


如果这个问题不属于这里,请告诉我,这样我就可以转到相关论坛。

您已经在使用一个名词:PrintTemplate。“打印模板”是一种东西。单词“print”也是一个动词这一事实并不改变“print template”(打印模板)是一个名词这一事实。

您已经在使用一个名词:print template。“打印模板”是一种东西。“print”这个词也是一个动词,这一事实并没有改变“print template”(打印模板)是一个名词的事实。

我怀疑“print”这个词在这里让人困惑。例如,如果是
PdfTemplateClient1
,您可能不会认为这是个问题。但是,我会尝试将名词放在末尾-我会使用
client1printmetplate
,与
client2printmetplate
等一起使用。类的共同部分通常位于名称的末尾而不是开头(例如
TextReader
StreamReader
StringReader


也就是说,我也会尽量避免在第一时间为不同的公司编写不同的代码。。。如果可能的话,这听起来像是应该用数据处理的事情——您可能需要不同的模板呈现器来处理不同的输出格式,但我会尽量避免它们因不同的公司而有所不同。

我怀疑“打印”这个词会让人困惑。例如,如果是
PdfTemplateClient1
,您可能不会认为这是个问题。但是,我会尝试将名词放在末尾-我会使用
client1printmetplate
,与
client2printmetplate
等一起使用。类的共同部分通常位于名称的末尾而不是开头(例如
TextReader
StreamReader
StringReader


也就是说,我也会尽量避免在第一时间为不同的公司编写不同的代码。。。如果可能的话,这听起来像是应该用数据处理的事情——您可能需要不同的模板呈现器来处理不同的输出格式,但我会尽量避免它们因不同的公司而有所不同。

一般来说,推荐的方法是正确的,如果您在想如何命名类时遇到困难,请尝试将该类视为服务并以此命名,例如:

ClientTemplateService, TemplatePrinterService


等等。

一般来说,推荐的方法是正确的,如果您在想如何命名类时遇到困难,请尝试将该类视为服务,并以此命名,例如:

ClientTemplateService, TemplatePrinterService

等等

使用这种方法,您将能够测试项目。 此外,还存在模块化

使用这种方法,您将能够测试项目。
除此之外,还有一个模块性。

作为一个常见的规则,如果一个类的名称是用英语读的,说明它的用途,那就更好了。 名称应以表示类的英文子短语开头,以表示类的抽象类别的子短语结尾

在您的情况下,PrintTemplateClient在英语中不作为命名 “公司一客户打印模板”

它可以是companyEclientPrintingTemplate,因为其他公司也有模板,并且它们派生自公共基类: 类companyneClientPrintingTemplate:ClientPrintingTemplate{} 类companytwClientPrintingTemplate:ClientPrintingTemplate{}

使用演讲中反映课堂目的的语法部分是完全可以的

例如,如果一个类表示命令,那么在基于消息传递的系统中,它应该以动词开头,以单词command结尾。 (见附件)

例如:

MakeClientServationCommand—一个类,它表示一个命令,如果由系统执行,该命令将导致为客户端进行保留操作

表示因命令而发生的事件的对应类应为过去时语句:

ClientServationCreated ClientServationRejected


正如您所看到的,这些类的名称遵循所述的一般规则——它们都是用纯英语阅读的。

作为一项常见规则,如果一个类的名称是用英语阅读的,这会更好地表明它的用途。 名称应以表示类的英文子短语开头,以表示类的抽象类别的子短语结尾

在您的情况下,PrintTemplateClient在英语中不作为命名 “公司一客户打印模板”

它可以是companyEclientPrintingTemplate,因为其他公司也有模板,并且它们派生自公共基类: 类companyneClientPrintingTemplate:ClientPrintingTemplate{} 类companytwClientPrintingTemplate:ClientPrintingTemplate{}

使用演讲中反映课堂目的的语法部分是完全可以的

例如,如果一个类表示命令,那么在基于消息传递的系统中,它应该以动词开头,以单词command结尾。 (见附件)

例如:

MakeClientServationCommand—一个类,表示将导致
I recommend changing the way you are defining your classes


    public interface IClientTemplate {

           GetTemplate(int templateTypeID, int clientID);

    }


    public class ClientTemplate: IClientTemplate {

        public string GetTemplate(.. get template as xml.. ) { }
    }


    public interface IPrintService {
              ClientInvoice(int clientID);
              ClientMemo(int clientID);
   }



public class PrintService: IPrintService {

        public ClientInvoice(int clientID) {

                 var template = new ClientTemplate ().GetTemplate(2, clientID);
                 .... and print her... 
            }

   }