안녕하세요! 효근이에오! 오늘 비공개글 다 풀어보려구요!
객체지향 5원칙은 보통 Solid라고 해요!
OOP라고만 쳐도 구글에 뜨는 많은 방대한량의 자료들이 많죠,
따로 읽어보지 않으면 추상적으로만 이해하고 넘어가기 쉬워요....
이 원리는 시간이 지나도 유지보수, 확장이 쉽도록 프로그래밍할 수 있도록 도와주는 도움을 주는 원칙이에요!. 물론 이 원칙 모든 걸 다 이해하고 있더라도 끊임없는 리펙토링을 거쳐야 하죠.
SOLID의 5대 원칙은 다음과 같아요
- 단일 책임 원칙(Single responsibility principle) - 약어: SRP
- 개방 폐쇄 원칙(Open/closed principle) - 약어: OCP
- 리스코프 치환 원칙(Liskov substitution principle) - 약어: LSP
- 인터페이스 분리 원칙(Interface segregation principle) - 약어: ISP
- 의존관계 역전 원칙(Dependency inversion principle) - 약어: DIP
저 원칙들의 앞에 있는 단어를 따온게 SOLID이죠.
단일 책임 원칙(Single responsibility priciple, SRP)
solid 5원칙 중 S에 해당하는 키워드로, 단어 그대로 모든 Class는 하나의 책임만 가지며, 그 책임은 완전히 캡슐화되어야 함을 말해요.
class Book {
function getTitle() {
return "신곡";
}
function getAuthor() {
return "단테";
}
function turnPage() {
// pointer to next page
}
function printCurrentPage() {
echo "현 페이지의 콘텐츠";
}
}
책이라는 개념과 책의 기능을 캡슐화한 Book이라는 Class 있다고 해볼게요!.
책은 저자와 제목을 반환할 수 있고, 페이지를 넘길 수 있습니다. 마지막으로 현재 페이지를 화면에 출력할 수도 있어요.
바로 도서 관리(사서 같은)와 책 표현 메커니즘(책의 내용을 사용자에게 전달하는 방식이에요. 이 둘은 아주 다른 액터에요.
비즈니스 로직을 프레젠테이션과 섞는 것은 단일 책임 원칙에 위배되기에 바람직하지 않을거에요!
여기까지가 SRP이에요! 감사합니다!
'Android > Android Issue' 카테고리의 다른 글
Shak IT! - 쉨잇 애플리케이션 개발기 (0) | 2019.09.12 |
---|---|
ViewPager2에 관한 고찰 (2) | 2019.04.08 |