3

私は可能な限りミニマリストになるように努めています。繰り返しが問題です。私はそれが嫌いです。本当に問題になるのはいつですか?

  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;}

関連している

4

2 に答える 2

3

使いすぎの種類は他にもありますか?

はい...独断の乱用。

これらの構造(静的、フィールド、メソッド、クラス、インターフェースなど)を使用するのが適切な場合と、適切でない場合について、バランスの取れた理解を深める必要があります。単にいくつかの構成の使用を避けようとすることは明らかに間違っています。

たとえば、静的フィールドには、JVM全体でフィールドのインスタンスが1つしか存在できないという問題があります。これは、staticsを使用するコードは再入可能ではない傾向があり、多くの状況で使用できなくなる可能性があることを意味します。たとえば、複数のスレッドがある場合や再帰が含まれる場合。ただし、JVM全体でインスタンスが1つだけである必要がある状況があり、そのような状況では、静的は完全に受け入れられます。

(上記は静力学の問題を単純化しすぎています。私はあなたがこれらのことについてどのように考えるべきかを説明しようとしています。賛否両論を理解し、あなたが聞いた教義に基づいてではなく、それぞれのメリットを判断します/どこかで読んでください。)

于 2010-05-01T08:29:33.343 に答える
1

「できるからといって、そうすべきだという意味ではありません!」

コードで何かをするかしないか(静的フィールド、プライベートアクセサー、インターフェイスなど)の場合、最も簡単な答えは、そのスタンスをとる正当な理由があると思います。盲目的に「ルール」に従うことは間違いであり、コードを変更する勇気のある人がいない場合、メンテナンスの悪夢を引き起こすことがよくあります。「Xが得られるのでプライベートアクセサーを使用しています。たとえば、すべてのデータアクセス/変更にシリアル化を適用できます」と言う方がよいでしょう。しかし、すべてのクラスでプライベートアクセサーを使用すると、やり過ぎで時間の無駄になる可能性があります。有形のものを達成する。

于 2010-05-01T09:32:31.887 に答える