본문 바로가기

Android/Android Issue

객체지향 5원칙 SOLID 1. 단일 책임 원칙

안녕하세요! 효근이에오! 오늘 비공개글 다 풀어보려구요!
객체지향 5원칙은 보통 Solid라고 해요!

OOP라고만 쳐도 구글에 뜨는 많은 방대한량의 자료들이 많죠, 

따로 읽어보지 않으면 추상적으로만 이해하고 넘어가기 쉬워요....

이 원리는 시간이 지나도 유지보수, 확장이 쉽도록 프로그래밍할 수 있도록 도와주는 도움을 주는 원칙이에요!. 물론 이 원칙 모든 걸 다 이해하고 있더라도 끊임없는 리펙토링을 거쳐야 하죠.

SOLID의 5대 원칙은 다음과 같아요

  1. 단일 책임 원칙(Single responsibility principle) - 약어: SRP
  2. 개방 폐쇄 원칙(Open/closed principle) - 약어: OCP
  3. 리스코프 치환 원칙(Liskov substitution principle) - 약어: LSP
  4. 인터페이스 분리 원칙(Interface segregation principle) - 약어: ISP
  5. 의존관계 역전 원칙(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