Joonas' Note

Joonas' Note

SOLID 원칙 - Single Responsibility Principle (SRP; 단일 책임 원칙) 본문

개발

SOLID 원칙 - Single Responsibility Principle (SRP; 단일 책임 원칙)

2023. 5. 16. 00:39 joonas
    SOLID 원칙들은, 소프트웨어 작업에서 프로그래머가 소스 코드를 읽기 쉽고 확장하기 쉽게 될 때 까지 리팩토링하여
    코드 냄새를 없애기 위해 쓰기 좋은 지침이다.

    정의

    Single Responsibility Principle (SRP; 단일 책임 원칙)
    하나의 클래스나 모듈은 단 하나의 책임만 가져야 한다.

    하나의 함수가 여러 개의 일을 한다는 뜻은 예측 불가능하다는 의미이다.

    예시

    아주 단적인 예시로, 끝 원소를 제거를 하는 함수가 삭제되는 원소를 반환할 이유는 없다. 제거만 하면 된다.
    Element pop() {
        if (size < 1) throw "Empty";
        
        size = size - 1;
        
        return array[size + 1]; // ?
    }
     

    삭제되는 값을 얻고 싶다면, pop 하기 전에 끝자리를 get 하는 것이 옳다.

    즉, 삭제는 삭제만, 조회는 조회만 하는 것이 예측할 수 없는 사이드 이펙트를 줄일 수 있기 때문이다.

    void pop() {
        size = size - 1;
    }
    
    Element get() {
        return array[size - 1];
    }
    즉, 기능을 더 쪼갤 수 없을 만큼 아토믹(atomic)한 것이 좋다.

    참고

     

    SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. -->

    ko.wikipedia.org

     

    단일 책임 원칙 - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. 객체 지향 프로그래밍에서 단일 책임 원칙(single responsibility principle)이란 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일

    ko.wikipedia.org

     

    Comments