Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Geon

SOLID - SRP 본문

OOP

SOLID - SRP

jgkim1008 2022. 3. 25. 19:11

Single Responsibility Principle(단일책임 원칙)

하나의 클래스는 하나의 책임만을 가져야 한다.

왜 하나의 책임만을 가져야 할까??

  • 재사용의 어려움
  • 이해하기 어려워, 유지보수가 힘들어진다.
  • 특정 기능을 변경했는데 객체 일부만 수정되었거나, 원하지 않는 객체들도 수정이 될수도 있다.

Bad Case


struct Cacao {

    func 서비스개발() -> APP {
        let 설계도 = 설계하기()
        let api = 백엔드개발(설계도: 설계도)
        return 프론트개발(API: api)

    }

    func 설계하기() -> UML {
        return UML
    }

    func 백엔드개발(설계도: UML) {
        return API
    }

    func 프론트개발(API: API) -> APP {
        return APP
    }

}

SRP 적용

struct Cacao {

    let pm = 설계자()
    let 백엔드개발자 = 백엔드개발자()
    let 프론트엔드개발자 = 프론트엔드개발자()

    func 서비스개발() -> APP {
        let 설계도 = pm.설계하기()
        let api = 백엔드개발자.개발하기(설계도: 설계도)
        return 프론트엔드개발자.개발하기(API: api)
    }
}

 
 

각기 하나의 동작만 하도록 행동들을 분리하였고, 이로 인해 어떤 기능을 수정하더라도 연관없는 기능에 영향이 가지 않게 할수있다.
또한 높은 응집도와 낮은 결합도를 얻을수 있다.

'OOP' 카테고리의 다른 글

SOLID - DIP  (0) 2022.03.27
SOLID - ISP  (0) 2022.03.27
SOLID - OCP  (0) 2022.03.25
SOLID 원칙  (0) 2022.03.25