Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Solid
- POP
- SWIFT
- protocol
- 함수형패러다임
- 함수형프로그래밍
- 인터페이스
- fp
- IOS
- 개발
- iOS프로그래밍
- interface
- CleanCode
- 아이폰프로그래밍
- 의도
- Swfit
- 네이밍
- 문법
- 이름
- 의존성
- OOP
- 협업
- 개발자
- 디자인패턴
- 부스트코스
- 클린소프트웨어
- 고차함수
- 객체지향프로그래밍
- 클린코드
- DesignPattern
Archives
- Today
- Total
밤에 쓴 코드
OOP ) SRP - 단일 책임 원칙 (Single responsibility principle) 본문
SRP -단일 책임 원칙 (Single responsibility principle)
하나의 클래스는 하나의 책임을 가져야한다.
클래스내부의 코드들은 서로 강하게 결합이 되게된다 . 두개의 서로 다른 책임을 가지게 된다면 , 서로 관련성이 없는 두 코드들이 강하게 결합될 수 있는 것이다.
또 , 여러개의 책임을 가지고 있다면 , 변경에 따른 테스트의 갯수 또한 많아지게 될 것이다.
- 여러개의 책임을 가진 구조체
struct IT기업 {
func 소프트웨어만들기() -> 검증된소프트웨어? {
let 설계도 = 설계하기()
let 프로토타입 = 개발하기(설계도: 설계도)
let 시제품 = 테스트하기(대상: 프로토타입) ? 프로토타입 : nil
return 시제품
}
func 설계하기() -> 시스템다이어그램 {
return 시스템다이어그램()
}
func 개발하기(설계도:시스템다이어그램) -> 소프트웨어 {
return 소프트웨어()
}
func 테스트하기( 대상: 소프트웨어) -> Bool {
return 소프트웨어.성능 > 50 ? true : false
}
}
IT기업이 주체가되어 설계하기
,개발하기
, 테스트하기
과정을 거쳐서 소프트웨어를 만들어 내고 있습니다
IT기업은 너무 많은 책임을 가지고 있습니다.
수정에 따른 잦은파 일의 변경도 예상됩니다.
- 단일 책임을 가지는 구조체
struct 좋은IT기업 {
let 설계자: 설계자
let 개발자: 개발자
let 테스터: 테스터
func 소프트웨어만들기() -> 검증된소프트웨어? {
let 설계도 = self.설계자.설계하기()
let 프로토타입 = self.개발하기(설계도: 설계도)
let 시제품 = self.테스터.테스트하기(대상: 프로토타입) ? 프로토타입 : nil
return 시제품
}
}
좋은IT기업은 하나의 목적을 위해서 동작을 수행합니다.
그 과정에서 많은 행동들이 필요하지만 , 그 메소드들의 책임은 자신이 가지고 있지 않습니다 .
대신 그 일을 잘 처리해 줄 수 있는 객체들만 알고 있습니다.
우리는 하나하나의 객체에 하나하나의 알맞게 책임을 부여하고 ,
책임을 수행하는 객체들간의 협력으로 하나의 다른 더 큰 책임을 수행하고 있습니다.
또 그 객체에게 메시지를 보내서 행동수행을 요청해서 , 객체들의 협력을 통해 하나의역할을 제대로 수행하게됩니다.
'OOP' 카테고리의 다른 글
OOP ) LSP - 리스코프 치환 원칙 (Liskov substitution principle) (1) | 2019.05.18 |
---|---|
OOP ) OCP -개방폐쇄 원칙(Open-closed principle) (1) | 2019.05.18 |
OOP ) SOLID - 객체지향 5원칙 (0) | 2019.05.18 |
OOP ) 타입, 추상화 (0) | 2019.04.28 |
OOP ) 상태 , 행동 , 식별자 (0) | 2019.04.26 |
Comments