Java 名称中包含版本的 class 的命名约定?
Java naming convention for a class with version in its name?
假设我有不同的 classes 来处理同一协议的不同版本(可能具有不同的接口)。例如,一个名为 My Protocol (MYP) 的虚构协议:
我的协议 (MYP) 版本 1.0、1.1、2.0、2.2 等...
我能想到的一些命名示例是:
MYP10Handler
, MYP11Handler
, MYP20Handler
, MYP22Handler
, ...
MYP1_0Handler
、MYP1_1Handler
、MYP2_0Handler
、MYP2_2Handler
、...
如果使用第一个选项,例如,如果协议达到更高版本,就会出现歧义。例如版本11.0(十一):
MYP11Handler
: 版本 1.1 还是 11.0?
MYP110Handler
:版本 11.0 还是 1.10?
然而,第二种选择似乎避开了驼峰规则。
通常如何命名这些类型class?对此有更好的做法吗?
您应该将整个程序的某个版本的所有 files/classes 都放在一个包中,该包的名称代表该特定版本。
当你想添加一个新版本的协议时,你应该创建一个新包,复制所有旧文件,然后从新文件开始,所有 files/classes 应该有相同的名称在每个包裹中(com.yourname.myprotocol14.MyProtocolHandler
,当然 不是 com.yourname.myprotocol14.MyProtocolHandler14
)
你必须决定在包名上写版本的精确度:你可以只写主要版本(com.yourname.myprotocol10
表示版本 10.X
,com.yourname.myprotocol12
表示版本 12.X
) 或决定编写次要版本(com.yourname.myprotocol10
用于版本 1.0
,com.yourname.myprotocol12
用于版本 1.2
),由您决定。
用户可以通过导入com.yourname.myprotocol[version number]
来决定他想使用什么版本的库(假设它是一个库),因此你应该把所有与库相关的文件放在每个包。
假设我有不同的 classes 来处理同一协议的不同版本(可能具有不同的接口)。例如,一个名为 My Protocol (MYP) 的虚构协议:
我的协议 (MYP) 版本 1.0、1.1、2.0、2.2 等...
我能想到的一些命名示例是:
MYP10Handler
, MYP11Handler
, MYP20Handler
, MYP22Handler
, ...
MYP1_0Handler
、MYP1_1Handler
、MYP2_0Handler
、MYP2_2Handler
、...
如果使用第一个选项,例如,如果协议达到更高版本,就会出现歧义。例如版本11.0(十一):
MYP11Handler
: 版本 1.1 还是 11.0?
MYP110Handler
:版本 11.0 还是 1.10?
然而,第二种选择似乎避开了驼峰规则。
通常如何命名这些类型class?对此有更好的做法吗?
您应该将整个程序的某个版本的所有 files/classes 都放在一个包中,该包的名称代表该特定版本。
当你想添加一个新版本的协议时,你应该创建一个新包,复制所有旧文件,然后从新文件开始,所有 files/classes 应该有相同的名称在每个包裹中(com.yourname.myprotocol14.MyProtocolHandler
,当然 不是 com.yourname.myprotocol14.MyProtocolHandler14
)
你必须决定在包名上写版本的精确度:你可以只写主要版本(com.yourname.myprotocol10
表示版本 10.X
,com.yourname.myprotocol12
表示版本 12.X
) 或决定编写次要版本(com.yourname.myprotocol10
用于版本 1.0
,com.yourname.myprotocol12
用于版本 1.2
),由您决定。
用户可以通过导入com.yourname.myprotocol[version number]
来决定他想使用什么版本的库(假设它是一个库),因此你应该把所有与库相关的文件放在每个包。