Java 包中分组类的约定
我一直想知道以下哪种方法是最好的: (一) 包装:Java 包中分组类的约定,java,naming-conventions,Java,Naming Conventions,我一直想知道以下哪种方法是最好的: (一) 包装:cars.blue 类:CarOne.java,CarTwo.java 包装:cars.red 类:CarOne.java,CarTwo.java (二) 包装:cars.blue 类:BlueCarOne.java,BlueCarTwo.java 包装:cars.red 类:RedCarOne.java,RedCarTwo.java (三) 包装:cars 类:BlueCarOne.java,BlueCarTwo.java,RedCarCone
cars.blue
类:CarOne.java
,CarTwo.java
包装:cars.red
类:CarOne.java
,CarTwo.java
(二)
包装:cars.blue
类:BlueCarOne.java
,BlueCarTwo.java
包装:cars.red
类:RedCarOne.java
,RedCarTwo.java
(三)
包装:cars
类:BlueCarOne.java
,BlueCarTwo.java
,RedCarCone.java
,RedCarTwo.java
方法1:将汽车类拆分为不同的包
方法2:似乎有点过载,因为汽车类已经可以通过包来区分。但是,当您只查看类名时,前缀是一个优势,不需要再次查看它所属的位置
方法3:将所有汽车都放在一个包中
哪种方法最好 我会选择方法3。因为所有的汽车都在同一个包中(所有的域类都在一起)。这是一个有争议的问题,每个人都可能有自己的利益。AFAIK除了基于用例的判断之外,没有预定义的约定。可能您应该创建封装功能块的包。颜色的区别实际上并不意味着任何功能上的差异,因此我在这里也会选择选项3。当两个软件包相互排斥时,方法1最有用,即当汽车有一个共同的界面时,红色和蓝色被编译成单独的罐子,这两个罐子一次只有一个。当两个包都可能存在时,这种命名很混乱
方法2和方法3几乎是等效的,因为它们的名称彼此相差很大。创建一个单独的包(方法2)可能有点过分,也可能没有,这取决于两组类在应用程序中的使用方式。否则,我将使用模型
/pojo
/域
包,执行以下操作:
package model;
class Car {
private String carColor; //Blue, Red
private String carType; // One, Two
// getter and setters
}
我认为这取决于你想要实现什么,但你应该记住,它不仅仅是用来分组的。但您也可以利用访问修饰符
如果所有的cars职业都可以使用某种方法,那么它们应该在一个包中,所以药剂3是好的
package cars;
public class BlueCarOne {
void method() {}
}
package cars;
public class BlueCarTwo {
void method() {}
}
package cars;
public class RedCarOne {
void method() {}
}
package cars;
public class RedCarTwo {
void method() {}
}
在这种情况下,只有来自cars
包的类才能调用method()
但是如果您想在RedCar
和BlueCar
之间隐藏一些实现细节,请将它们放入不同的包中。并将应隐藏的方法或字段标记为受包保护的
干杯,
米哈尔