假设我有不同的类来处理相同协议的不同版本(可能有不同的接口)。例如,一个名为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?
然而,第二个选项似乎逃避了Camel Case规则。
如何对这些类型的类进行命名?有更好的做法吗?
答案 0 :(得分:5)
您应该将所有文件/类相对于整个程序的特定版本的部分放在一个包含代表该特定版本的名称的包中。
如果要添加协议的新版本,则应创建新包,复制所有旧文件,然后从新内容开始,所有文件/类在每个包中都应具有相同的名称( com.yourname.myprotocol14.MyProtocolHandler
,当然不 com.yourname.myprotocol14.MyProtocolHandler14
)
您必须决定在软件包名称上编写版本的精确度:您可以将版本com.yourname.myprotocol10
的主要版本10.X
,com.yourname.myprotocol12
用于版本{{1} }或决定甚至编写次要版本(12.X
版本com.yourname.myprotocol10
,1.0
版本com.yourname.myprotocol12
),这取决于您。
用户可以通过导入1.2
来决定他想要使用的库的版本(假设它是一个库),因此您应该将所有相对于库的文件放在中每个包。