Java: повторение, злоупотребление - проблема? - PullRequest
3 голосов
/ 01 мая 2010

Я стараюсь быть как можно более минималистичным. Повторение это проблема. Я ненавижу это. Когда это действительно проблема?

  1. что такое статическое перенапряжение?
  2. Что такое чрезмерное использование метода поля?
  3. что такое чрезмерное использование класса?
  4. существуют ли другие типы чрезмерного использования?

Проблема 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 ]

3 голосов
/ 01 мая 2010

Есть ли еще типы чрезмерного использования?

Да ... злоупотребление догматизмом.

Вам необходимо выработать сбалансированное понимание того, когда целесообразно использовать эти конструкции (статика, поля, методы, классы, интерфейсы и т. Д.), А когда - нет. Простая попытка избежать использования какой-либо конструкции явно ошибочна.

Например, но у статических полей есть проблема, что во всей JVM может быть только один экземпляр поля. Это означает, что код, использующий статику, имеет тенденцию быть неповторяющимся, что может сделать его непригодным для использования во многих ситуациях; например когда есть несколько потоков или рекурсия участвует. Однако существуют ситуации, когда вам нужно , чтобы во всей JVM был только один экземпляр, и в этих ситуациях статика вполне приемлема.

(Вышесказанное является упрощением вопросов статики. Я пытаюсь проиллюстрировать , как вы должны думать об этих вещах . Поймите плюсы и минусы и судите каждый случай по существу, а не по основа какой-то догмы, которую вы где-то слышали / читали.)

1 голос
/ 01 мая 2010

«То, что вы можете, не значит, что вы должны!»

Если вы собираетесь делать или не делать что-то в коде (например, статические поля, частные средства доступа,интерфейсы) Я думаю, что самый простой ответ - это веская причина для такой позиции.Следование «правилам» вслепую является ошибкой и часто создает кошмар обслуживания, если никто не достаточно смел, чтобы изменить код.Лучше сказать: «Я использую частные средства доступа, потому что они дают мне X, например, я могу принудительно использовать сериализацию для любого доступа / изменения данных». Но использование частных средств доступа во всех классах может быть просто излишним и пустой тратой времени, если это не так.не может достичь ничего осязаемого.

...