추상화

객체지향프로그래밍

[SOLID 원칙] 4. Interface Segregation Principle 인터페이스 분리 원칙

Interface Segregation Principle 인터페이스 분리 원칙 정의 : 클라이언트는 자신이 사용하지 않는 메소드에 의존하지 않아야 한다. 즉, 인터페이스를 구체적으로 잘게 짤라서 만들어야 한다. 아래와 같이 디자인 된 시스템을 보면 ISP원칙을 적용하면 좋을것 같다. InfoApplication은 getName(), getID()메소드만 사용하고 나머지는 필요 없으며 CareereApplication은 getJobLevel()메소드만 사용한다. 이러한 상황에서 getAge()라는 메소드를 추가하게 되면 Employee클래스에 연관된 모든 클래스가 영향을 받는다. 따라서 아래와 같이 인터페이스를 분리해보자 EmployeeInfo와 EmplyeeCareere로 인터페이스를 분리함으로써 서로간..

좋은 코드 만들기/클린코드

[클린코드] 6. 객체와 자료 구조

자료 추상화 OOP에서 특수한 경우가 아니면 class안의 인스턴스변수를 private으로 정의하는 한다. 왜냐하면 남들(사용하는 쪽)이 변수에 의존하지 않게 만들기 위해서이다. 참고 + (d-yong.tistory.com/21) [C++] 클래스를 캡슐화(Encapsulation) 하는 이유(왜 멤버변수는 대부분 private인가?) 객체지향 언어에서 클래스를 만들때 항상 나오는 말은 캡슐화(Encapsulation)다. 즉, 멤버변수는 private 접근 한정자로 외부의 직접적인 접근을 제한하고 클래스를 사용하는 외부에 인터페이스를 제 d-yong.tistory.com 위의 내용에 한발더 나아가 클린코드에서는 추상화 인터페이스를 제공해 API를 사용하는 쪽에서 내부 구현을 모른채 기능을 사용할 수 있..

자유로운 범고래
'추상화' 태그의 글 목록