我读罗伯特·C·马丁斯本书清洁守则。他写的类名的约定不使用动词。
该项目中,我目前正在研究,我们需要验证和处理一些XML,所以我创造了这样的事情
public class XmlProcesser
{
public XmlProcesser(string filePathAndName)
{
}
public bool Validate()
{
}
}
但是,鲍勃叔叔的建议是不要在类名使用“处理器”。
但是我应该怎么称呼它呢? XML是没有好,因为我使用的.NET类的XML很多的代码。我想过XmlHandler但我想这比处理器更糟,因为“处理”是别的东西程序员。
你好吗?你用你的类名动词?
最佳答案
命名很重要。赫克(T.S.)艾略特(Eliot)和安德鲁·劳埃德(Andrew Lloyd Webber)从《猫的名字》中发了大财。但是马丁斯的观点不是关于不使用动词,而是关于面向对象的思维。类是用于实例化对象的模式。对象就是事物。是否通过行为或名字更好地描述了类似的事物?
我是食肉动物吗?是的。但是我也写程序。我是程序员吗?是的。但是我也投票支持奥巴马。我是奥巴马的支持者吗?是的。但是...最后,我是一个人。更正确地说,我是class [1] HomoSapiensSapiens
的实例。 HomoSapiensSapiens
有很多很多方法,所有方法都有类似动词的名称。像HomoSapiensSapiens.EatBacon()
一样。像HomoSapiensSapiens.WriteGoodCode()
一样。像HomoSapiensSapiens.VoteDemocratic()
一样。等等。
马丁的主要观点是,如果您的类(class)最好用动词来命名,那么您正在考虑类(class)都错了。
[1]“类”在OO中的含义,而不是Kingdom/Phylum/Class生物学的含义。
关于language-agnostic - 在类里面使用的名称动词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8614356/