首页 > 代码库 > Atitit 深入理解命名空间namespace java c# php js
Atitit 深入理解命名空间namespace java c# php js
Atitit 深入理解命名空间namespace java c# php js
1.1. Namespace还是package1
1.2. import同时解决了令人头疼的include1
1.3. 在不支持ns的语言里面使用ns,前缀发1
1.4. 常用命名空间的统计(约150个)1
1.5. 命名空间2
1.5.1. 在struts2中2
1.6. Linux 就支持6种不同类型的命名空间。2
1.1. Namespace还是package
1.2. import同时解决了令人头疼的include
import引入了真正的包(package)或者namespace的概念,更好的组织程序的结构,比include只是简单的把头文件的内容加入源文件的原始处理方法要先进。
import同时解决了令人头疼的include循环引用定义的问题。
至于include编译次数的问题,解决头文件被多次编译,其实可以把常用的头文件加入预编译头,以缩短编译的时长。
因为include的原始性,include也具有优势:在处理一些冗长的宏定义,可以通过多次include来充当代码生成器。
1.3. 在不支持ns的语言里面使用ns,前缀发
Qt著名的Q前缀, oc著名的ns前缀命名空间
1.4. 常用命名空间的统计(约150个)
项目常用模块与组织命名空间.xlsx
XML也有类似的命名空间(namespace)机制
1.5. 命名空间
编辑
1.5.1. 在struts2中
在struts2里,namespace是package里的一个属性,用来标记action的访问路径。注意:只有package的namespace才能标记路径而不是name属性。在struts2里,存在着一个是默认namespace-"",若package不指定namespace,则package里的action就使用默认namespace。若访问action时没有指定namespace则struts2会先在根namespace-"/"里查找action,找不到再到默认namespace里查找action。再找不到就会报错,也就是说struts2只会查找两层namespace
1.6. Linux 就支持6种不同类型的命名空间。
它们的出现,使用户创建的进程能够与系统分离得更加彻底,从而不需要使用更多的底层虚拟化技术。
· CLONE_NEWIPC: 进程间通信(IPC)的命名空间,可以将 SystemV 的 IPC 和 POSIX 的消息队列独立出来。
· CLONE_NEWPID: 进程命名空间。空间内的PID 是独立分配的,意思就是命名空间内的虚拟 PID 可能会与命名空间外的 PID 相冲突,于是命名空间内的 PID 映射到命名空间外时会使用另外一个 PID。比如说,命名空间内第一个 PID 为1,而在命名空间外就是该 PID 已被 init 进程所使用。
· CLONE_NEWNET: 网络命名空间,用于隔离网络资源(/proc/net、IP 地址、网卡、路由等)。后台进程可以运行在不同命名空间内的相同端口上,用户还可以虚拟出一块网卡。
· CLONE_NEWNS: 挂载命名空间,进程运行时可以将挂载点与系统分离,使用这个功能时,我们可以达到 chroot 的功能,而在安全性方面比 chroot 更高。
· CLONE_NEWUTS: UTS 命名空间,主要目的是独立出主机名和网络信息服务(NIS)。
· CLONE_NEWUSER: 用户命名空间,同进程 ID 一样,用户 ID 和组 ID 在命名空间内外是不一样的,并且在不同命名空间内可以存在相同的 ID。
参考
Atitit.软件命名空间 包的命名统计 及命名表(2000个名称) 方案java package
编程语言中import比起include来是更先进的模块管理机制吗? - 知乎用户的回答 - 知乎.htm
DFS 命名空间概述.htm
介绍 Linux 的命名空间_Linux教程_Linux公社-Linux系统门户网站.htm
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon Al Rapanui
埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源:attilax的专栏 http://www.cnblogs.com/attilax/
--Atiend
Atitit 深入理解命名空间namespace java c# php js