2016-09-23 3 views
2

私はいくつかのOOPの本を読んでいます。ここでは、責任の集合に焦点を当てたクラスを定義するためのルールに重点が置かれています。私が働いた多くのアプリケーションでは、これが守られていることがほとんどです。しかし、多くのロジックが1つの方法に投げ込まれて、理解/単体テストを理解することが困難になっているケースがたくさんあります。方法を定義する際に従うべきベストプラクティスは何ですか?メソッドの責任に焦点を合わせた

+1

「Clean Code、author - Robert Martin」を読んだ後、私はコードを完全に見直しました。それを読むことは簡単で速いです。リファクタリング、コードのクリーン化、構造体の整理方法、繰り返しのない方法を重視しています。 –

+0

ありがとう@AndriiAbramov –

+0

単独責任原則としても知られているSOLIDのS:クラスには変更の理由が1つだけある必要があります(Robert C. Martin)。 – sp00m

答えて

1

例としての、以下の方法を見てみましょう:

public static void printDetails() { 
    System.out.println("Current time: " + LocalTime.now()); 
    System.out.println("Current date: " + LocalDate.now()); 

    System.out.println("Available processors: " + Runtime.getRuntime().availableProcessors()); 
    System.out.println("Max memory: " + Runtime.getRuntime().maxMemory()); 
    System.out.println("Free memory: " + Runtime.getRuntime().freeMemory()); 
} 

いくつかのリファクタリング後、私たちは、より読みやすくかつ保守バージョンがあります:

public static void printDetails() { 
    printDateTimeDetails(); 
    printProcessorDetails(); 
    printMemoryDetails(); 
} 

を読みやすくなります。さらに重要なのは、テストする方が簡単です。 このメソッドの本文を読むと、そのメソッドの目的が明確に理解されます。詳細が必要な場合は、コードを深く見て、すべてのメソッドが何をしているかを見てください。

public static void printProcessorDetails() { 
    System.out.println("Available processors: " + getAvailableProcessors()); 
} 

public static int getAvailableProcessors() { 
    return Runtime.getRuntime().availableProcessors(); 
} 

public static void printMemoryDetails() { 
    System.out.println("Max memory: " + getMaxMemory()); 
    System.out.println("Free memory: " + getFreeMemory()); 
} 

public static long getFreeMemory() { 
    return Runtime.getRuntime().freeMemory(); 
} 

public static long getMaxMemory() { 
    return Runtime.getRuntime().maxMemory(); 
} 

private static void printDateTimeDetails() { 
    System.out.println("Current time: " + LocalTime.now()); 
    System.out.println("Current date: " + LocalDate.now()); 
} 

また、このようなコードは再利用可能です。

ボーイスカウトには、「キャンプ場を常に見つけたものよりも清潔にしておいてください」というルールがあります。実際には、スカウトの父であるロバート・スティーブンソン・スミス・バーデン・パウエルが書いたそのルールの原型は、「あなたが見つけたよりもこの世界を少しでも試してみてください」でした。

もちろんこれはすべて私の意見です。

+0

ありがとう@Andrii –

2

一般的なコンセンサスは、方法が何をすべきかを決める最良の方法は、Do One Thingの哲学に従うことです。

それぞれの方法は、1つのことと1つのことのみを行う必要があります。

+0

ありがとうございます、リンクを見てください! –

関連する問題