避免命名的冲突:在IOS中,明确的接口与API设计(一)
2024-02-11 20:26:04
命名冲突的根源:全局环境中身份一致性缺乏
在讲述前缀避免命名冲突时,应当从命名的全局环境中对根源进行寻找。
在IOS应用程序中,具有命名权限和冲突风险的,包括可执行文件的命名、变量、方法、协议、结构体、枚举、常量等,大量命名参与其中容易产生无法预知的命名冲突。同样是变量名,通过不同环境区分命名权限,例如:局部变量、类属性、结构体属性等,但这未从根本上杜绝冲突的发生,特别是在多模块设计时。
命名冲突与类型冲突:面向IOS编程的一种编程思维
命名冲突是一种表象,根源在于类冲突和方法冲突。类冲突和方法冲突是真正在程序开发中所需要避免的,而命名仅仅是这两个问题暴露给程序员的一种直观表现。当命名冲突不可避免的发生时,实质上导致的是类与方法所对应的错误实现。
回到IOS编程的根本,以对象为核心的一切设计根源,其实是面向IOS编程的一种思维模式。通过面向对象的方式,把现实世界中的一些理念引入到IOS应用设计过程中,可以更容易地掌控IOS开发并获得优秀的性能,同时也能有效地避免命名冲突。
前缀:有效避免命名冲突的法宝
有别于其它方法所获得的命名缓解,引入前缀其实就是一种“命名规范”的体现,当冲突发生时,直接在命名层化简该冲突。通过限定命名,通过限定命名约束,解决本质的冲突,避免出现重大问题,这就是命名规范的作用。
- 前缀的使用范围:凡是有命名的参与,皆可有前缀的参与
无论是可执行文件的命名、变量、方法、协议、结构体、枚举、常量等,皆有可能参与命名冲突。这就是为什么前缀的使用范围是:凡是有命名,皆有前缀。
- 前缀的长度:针对冲突,3个字母最合适
随着软件设计开发的语言普及,目前主要是Objective-C,以及Swift和C++。以这三种语言在IOS编程中的地位来看,均没有限定只能使用3个字母作为命名规范,但从国际化角度来看,4个字母是一个比较合适的长度,从语义上来看,4个字母也是人类能记住的最大长度,3个字母在某个语境下容易产生误读。
- 前缀的选择:建议采用与公司、应用程序关联的名字
前缀的命名空间,简单就是指前缀的选择。尽可能选择容易记住的名字作为前缀,且这个前缀具有与公司、应用程序的强关联性。这样便于其它开发者在看到命名时,直观理解这个命名所代表的含义,简单直接。
- 前缀的组合:有限空间充分运用,通过限定命名类范围
有限的前缀命名空间当中,如果一个开发团队或某个应用程序特别庞大时,根本无法满足一个前缀的限制,如何进行有效地组合,便成为了非常关键的环节。可以考虑通过代码层次的角度,进行前缀的命名空间组合。
通过以上4点的前缀,程序员可以得出一个基本的结论,虽然前缀并不是一种解决命名冲突的最完美的方案,却是一种最为简单实用的一种方法,当程序员在初期坚持用前缀的方式来限定命名时,自然就能合理规避掉一些错误的发生。