命名空间 VS 命名前缀,该如何解决
命名空间 VS 命名前缀
给函数和类的命名分类非常重要,常常遇到知道这个函数存在,但是记不住具体的名字的情况。因为你即使知道它的意思,命名也很科学,但是往往同一个功能有多个描述方式,比如目录可以是Folder和Directory,一个创建文件夹的函数是CreateFolder还是CreateDirectory呢?实际上不同的库,这两个名称可能都使用,你可能知道调用哪个库,比如是WindowsAPI还是自己编写的还是引用的第三方的,但是具体名字记不住了。
这个时候如果把具有相同功能的一类函数加一个命名前缀,比如某个库都以某个前缀命名函数和类,那么使用起来确实方便多了,这个前缀冲突的可能性不是太大,比函数名冲突要少的多。
当然了,一般提倡的做法是使用命名空间。但是发现命名空间并不是非常的方便,如果你调用了很多的库,你就会被不同的命名空间搞的很烦,特别是多级命名空间,和命名空间很多的情况。命名前缀一般就是2到3个字符,甚至一个也不是不可以,但是命名空间一般不会太短,否则很难记住含义。命名前缀在后面单词的提示下,首字母只起分类作用,不至于对名称产生很大影响。
如果不使用using namespace,你就需要书写太多的冒号和命名空间名称来引用一个对象,如果使用using namespace,在局部就失去了命名空间的意义,你不知道你引用的函数是哪个命名空间的,除非不断的看开头的引用。而且拷贝代码的时候,你需要不断的关注到底引用了哪些命名空间。
Java显然深受命名空间所累,它在IDE(Eclipse)里甚至添加了自动引用命名空间和纠错的功能。
综合来看,我觉得,命名空间应该在大类比如一整个库只有一个命名空间,内部的小分类,用命名前缀更方便。
------解决方案--------------------
楼主分析的及时。
------解决方案--------------------
------解决方案--------------------
比较长的和多级嵌套的命名空间名称可以使用命名空间别名解决,不存在会让人很烦这个问题。
------解决方案--------------------
只是为了分类 ,当然是名字空间好.
任何东西用滥了也会不好.适度使用.
命名前缀来分类是不可取的.将本来应该由C++来做的事交给了程序员,这无疑是增加了程序员的负担.
而且,还是避免不了名字污染,太过暴露的问题.
用名字空间使语意更加清晰,加多两个冒号对未来的维护来说是十分超值的.
------解决方案--------------------
二者都有用处
------解决方案--------------------
------解决方案--------------------
宇宙.银河系.太阳系.地球.互联网.csdn.论坛.2012年.5月.pgmsoul(游侠)."命名空间 VS 命名前缀".帖子(0).Value="给函数……更方便。";
(^_^)
给函数和类的命名分类非常重要,常常遇到知道这个函数存在,但是记不住具体的名字的情况。因为你即使知道它的意思,命名也很科学,但是往往同一个功能有多个描述方式,比如目录可以是Folder和Directory,一个创建文件夹的函数是CreateFolder还是CreateDirectory呢?实际上不同的库,这两个名称可能都使用,你可能知道调用哪个库,比如是WindowsAPI还是自己编写的还是引用的第三方的,但是具体名字记不住了。
这个时候如果把具有相同功能的一类函数加一个命名前缀,比如某个库都以某个前缀命名函数和类,那么使用起来确实方便多了,这个前缀冲突的可能性不是太大,比函数名冲突要少的多。
当然了,一般提倡的做法是使用命名空间。但是发现命名空间并不是非常的方便,如果你调用了很多的库,你就会被不同的命名空间搞的很烦,特别是多级命名空间,和命名空间很多的情况。命名前缀一般就是2到3个字符,甚至一个也不是不可以,但是命名空间一般不会太短,否则很难记住含义。命名前缀在后面单词的提示下,首字母只起分类作用,不至于对名称产生很大影响。
如果不使用using namespace,你就需要书写太多的冒号和命名空间名称来引用一个对象,如果使用using namespace,在局部就失去了命名空间的意义,你不知道你引用的函数是哪个命名空间的,除非不断的看开头的引用。而且拷贝代码的时候,你需要不断的关注到底引用了哪些命名空间。
Java显然深受命名空间所累,它在IDE(Eclipse)里甚至添加了自动引用命名空间和纠错的功能。
综合来看,我觉得,命名空间应该在大类比如一整个库只有一个命名空间,内部的小分类,用命名前缀更方便。
------解决方案--------------------
楼主分析的及时。
------解决方案--------------------
------解决方案--------------------
比较长的和多级嵌套的命名空间名称可以使用命名空间别名解决,不存在会让人很烦这个问题。
------解决方案--------------------
只是为了分类 ,当然是名字空间好.
任何东西用滥了也会不好.适度使用.
命名前缀来分类是不可取的.将本来应该由C++来做的事交给了程序员,这无疑是增加了程序员的负担.
而且,还是避免不了名字污染,太过暴露的问题.
用名字空间使语意更加清晰,加多两个冒号对未来的维护来说是十分超值的.
------解决方案--------------------
二者都有用处
------解决方案--------------------
------解决方案--------------------
宇宙.银河系.太阳系.地球.互联网.csdn.论坛.2012年.5月.pgmsoul(游侠)."命名空间 VS 命名前缀".帖子(0).Value="给函数……更方便。";
(^_^)