Java - 为什么命名 interface 时不推荐添加 I 前缀?

简介: Java - 为什么命名 interface 时不推荐添加 I 前缀?

起初很困惑,I前缀能让他人立即分辨出这个类型是否是一个接口,为何要禁止使用?后来渐渐有了答案,特此记录

原因一:I前缀违反了封装原则

在TS中,类可以实现接口,接口可以继承接口,接口可以继承类。类和接口都是某种意义上的抽象和封装,继承时不需要关心它是一个接口还是一个类。

如果用I前缀,当一个变量的类型更改了,比如由接口变成了类,那变量名称就必须要更改,那代码中依赖变量的地方都要更改。

原因二:防止不恰当的命名

曾经有人调侃说 “在计算机科学中只有两件困难的事:缓存失效和给事物命名”。很多程序员都不愿花功夫去想恰当的命名。禁止使用I前缀可以迫使程序员为接口取一个合适的、带有语义、便于和其他同类型变量区分的名字,而不仅是用前缀区分。

原因三:匈牙利命名的时代已经过去了

匈牙利命名法(Hungarian_notation)由类型前缀加实际的变量名组成,用这种方法命名的变量,看到变量名,可以立即知道其类型。但它的缺点远大于它带来的好处,比如使变量名变得冗长,使相同主体名但类型不同的变量有歧义,比如sWidth、nWidth、fWidth,更好的写法应该是string input、int width、float zoomedWidth

原因四:Java VS C#

说明:加I和不加I都可以,看需要,没有强制要求。

在Java中更多是提倡不加I的,可以看下JDK的源码,都是不加I的。

微软C#是规定要加I,这也是影响从而导致有这个话题的原因。

目录
相关文章
|
7月前
|
Java
Java 变量命名规则
4月更文挑战第6天
|
3月前
|
Java 程序员
java基础(5)标识符命名规则和命名规范
Java标识符命名规则包括只能使用数字、字母、下划线\_、$,且数字不能开头,不能使用关键字命名,且严格区分大小写。命名规范建议类名、接口名首字母大写,变量名、方法名首字母小写,常量名全大写。
104 2
|
2月前
|
Java 开发者
在Java编程中,正确的命名规范不仅能提升代码的可读性和可维护性,还能有效避免命名冲突。
【10月更文挑战第13天】在Java编程中,正确的命名规范不仅能提升代码的可读性和可维护性,还能有效避免命名冲突。本文将带你深入了解Java命名规则,包括标识符的基本规则、变量和方法的命名方式、常量的命名习惯以及如何避免关键字冲突,通过实例解析,助你写出更规范、优雅的代码。
65 3
|
2月前
|
存储 Java
从菜鸟到大神:Java标识符命名的“蜕变”之路!
【10月更文挑战第13天】从菜鸟到大神:Java标识符命名的“蜕变”之路!本文从初识标识符命名、命名规范的重要性、命名最佳实践三个方面,详细探讨了如何通过合理的命名提升代码的清晰度、可读性和可维护性,帮助你在编程之路上不断成长。
40 2
|
2月前
|
Java 开发者
Java的标识符命名
Java的标识符命名
23 4
|
1月前
|
存储 Java
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
18 0
|
2月前
|
前端开发 Java 数据库
企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误
文章详细阐述了企业级编程中Java和数据库等编程规范的命名风格,包括包名、类名、方法名、参数名、成员变量、局部变量、常量、抽象类、异常类、测试类、数据库及其字段和CSS等的命名规则。
57 0
企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误
|
4月前
|
设计模式 Oracle Java
一不小心掉入了 Java Interface 的陷阱
本文作者记录了一次代码中的踩坑经历,一行很简单的代码在不同的场景下可能也暗藏玄机,希望大家看完都有所收获。
|
4月前
|
Oracle Java 关系型数据库
为啥叫Java呢?Java的命名
为啥叫Java呢?Java的命名
79 1
|
4月前
|
Rust 安全 Java
Java代码规范--排版,命名.:Rust能否撼动C++的王座?
系统编程是计算机科学的核心,C++长期占据主导地位,但其内存安全问题备受诟病。Rust以安全性为核心,通过所有权和生命周期概念避免了野指针和内存泄漏。此外,Rust的并发模型和日益丰富的生态系统使其成为现代系统编程的新选择,尤其在安全性和并发性方面表现出色。尽管C++依然强大,但Rust为开发者提供了更安全、易管理的选项,未来有望推动更多系统级应用的发展。
29 0
下一篇
DataWorks