Java:重复,过度使用 - 问题?

时间:2010-05-01 08:22:12

标签: java coding-style repeat overuse

我尽量做到极简主义。重复是一个问题。我讨厌它。什么时候真的有问题?

  1. 什么是静电过度使用?
  2. 什么是现场方法过度使用?
  3. 什么是课堂过度使用?
  4. 是否有更多类型的过度使用?
  5. 问题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;}
    

    相关

2 个答案:

答案 0 :(得分:3)

  

是否有更多类型的过度使用?

是的......过度使用教条主义。

您需要对何时适合使用这些结构(静态,字段,方法,类,接口等)以及何时不合适进行平衡的理解。简单地试图避免使用某些结构显然是错误的。

例如,但静态字段存在的问题是整个JVM中只能有一个字段实例。这意味着使用静态的代码往往是不可重入的,这可能使它在很多情况下无法使用;例如当涉及多个线程或递归时。但是,在某些情况下,需要在整个JVM中只有一个实例,在这种情况下静态是完全可以接受的。

(以上是对静态问题的过度简化。我试图说明你应该如何思考这些事情。理解利弊,并根据其优点判断每个案例根据你在某处听到/读过的一些教条。)

答案 1 :(得分:1)

  

“只因为你可以,并不意味着   你应该!“

如果您要在代码中执行或不执行某些操作(例如,静态字段,私有访问器,接口),我认为最简单的答案是有充分的理由采取这种立场。盲目遵循“规则”是一个错误,如果没有人足够勇敢改变代码,往往会造成维护噩梦。最好说,“我正在使用私有访问器,因为它给了我X,例如我可以强制执行所有数据访问/修改的序列化”但是在所有类中使用私有访问器可能只是过度杀戮而浪费时间,如果它没有'实现任何有形的东西。