클래스들은 너무 많은 클래스들과 결합되어서는 안됩니다.(단일 책임 원칙)

 

Robert C. Martin 의 저서 “Principles of Object Oriented Design” 에서 소개된 단일 책임 원칙에 따르면, 클래스는 단 하나의 책임만을 가져야 합니다.

클래스에 둘 이상의 책임이 있는 경우, 책임은 결합됩니다.
하나의 책임을 변경하는 것이 클래스가 다른 책임을 충족시키는 것을 손상시키거나 억제할 수 있습니다.
이러한 커플링은 코드가 수정될 때 예상치 못하게 망가지는 깨지기 쉬운 디자인을 초래할 수 있습니다.

다른 클래스에 너무 많이 의존하는 클래스들은 너무 많은 책임을 결합하려는 경향이 있고, 이 클래스들은 더 작은 클래스들로 분할되어야 합니다. 중첩 클래스 의존성은 외부 클래스에 대한 의존성으로 여겨지지 않습니다.

규칙을 어긴 코드

임계치 5에서

class Foo {                        // 규칙을 어긴 코드 - Foo 클래스는 너무 많은 클래스에 의존하고 있습니다: T1, T2, T3, T4, T5, T6 그리고 T7
    T1 a1;                           // Foo 는 T1 과 결합됩니다.
    T2 a2;                           // Foo 는 T2 와 결합됩니다.
    T3 a3;                           // Foo 는 T3 와 결합됩니다.

    public T4 compute(T5 a, T6 b) {  // Foo 는 T4, T5 그리고 T6 와 결합됩니다.
        T7 result = a.getResult(b);    // Foo 는 T7 과 결합됩니다.
        return result;
    }

    public static class Bar {        // 규칙을 준수한 코드 - Bar 는 2개의 클래스에 의존합니다: T8, T9
        T8 a8;
        T9 a9;
    }
}

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project