我尽量做到极简主义。重复是一个问题。我讨厌它。什么时候真的有问题?
问题A:什么时候使用静态太多了?
private static class Data
{
private static String fileContent;
private static SizeSequence lineMap;
private static File fileThing;
private static char type;
private static boolean binary;
private static String name;
private static String path;
}
private static class Print
{
//<1st LINE, LEFT_SIDE, 2nd LINE, RIGHT_SIDE>
private Integer[] printPositions=new Integer[4];
private static String fingerPrint;
private static String formatPrint;
}
问题B:使用私有方法获取字段数据的时间太多了吗?
public Stack<Integer> getPositions(){return positions;}
public Integer[] getPrintPositions(){return printPositions;}
private Stack<String> getPrintViews(){return printViews;}
private Stack<String> getPrintViewsPerFile(){return printViewsPerFile;}
public String getPrintView(){return printView;}
public String getFingerPrint(){return fingerPrint;}
public String getFormatPrint(){return formatPrint;}
public String getFileContent(){return fileContent;}
public SizeSequence getLineMap(){return lineMap;}
public File getFile(){return fileThing;}
public boolean getBinary(){return binary;}
public char getType(){return type;}
public String getPath(){return path;}
public FileObject getData(){return fObj;}
public String getSearchTerm(){return searchTerm;}
相关
答案 0 :(得分:3)
是否有更多类型的过度使用?
是的......过度使用教条主义。
您需要对何时适合使用这些结构(静态,字段,方法,类,接口等)以及何时不合适进行平衡的理解。简单地试图避免使用某些结构显然是错误的。
例如,但静态字段存在的问题是整个JVM中只能有一个字段实例。这意味着使用静态的代码往往是不可重入的,这可能使它在很多情况下无法使用;例如当涉及多个线程或递归时。但是,在某些情况下,需要在整个JVM中只有一个实例,在这种情况下静态是完全可以接受的。
(以上是对静态问题的过度简化。我试图说明你应该如何思考这些事情。理解利弊,并根据其优点判断每个案例根据你在某处听到/读过的一些教条。)
答案 1 :(得分:1)
“只因为你可以,并不意味着 你应该!“
如果您要在代码中执行或不执行某些操作(例如,静态字段,私有访问器,接口),我认为最简单的答案是有充分的理由采取这种立场。盲目遵循“规则”是一个错误,如果没有人足够勇敢改变代码,往往会造成维护噩梦。最好说,“我正在使用私有访问器,因为它给了我X,例如我可以强制执行所有数据访问/修改的序列化”但是在所有类中使用私有访问器可能只是过度杀戮而浪费时间,如果它没有'实现任何有形的东西。