단일 책임 원칙 (Single Responsibility Principle, SRP)단일 책임 원칙 ?References 단일 책임 원칙 ?클래스를 변경하는 이유는 단 한 가지여야 한다.위키 백과에 따르면 단일 책임 원칙이란,모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 예를 들어 보고서를 편집하고 출력하는 모듈이 있다고 가정한다. 이 모듈은 보고서의 내용, 형식의 변경을 이유로 모듈이 변경될 두 가지의 사유를 가질 수 있다. 허나 단일 책임 원칙에 의하면, 두 측면이 실제론 분리된 두 책임 때문이기에 분리된 클래스나 모듈로 나누어야 하고 다른 시기에 다른 이유로 변경되어야 하는 두 가지를 묶는 것은 나쁜 설계일 수 있다고 한다.쉽게 말하면, 하나의 클래스는 ..
객체 지향 설계 (SOLID)객체 지향 설계 ?References 객체 지향 설계200년대 초반, 로버트 C. 마틴이 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을로버트 C. 마틴 '클린 코드', '클린 코더' 의 저자로 여기서 설명한 SOLID 원칙을 명명했다고 한다.이 원칙들은 '클린 코드' 를 기반으로 설명하고 있으니, 원한다면 책을 통해 깊이 공부하는 것이 좋을 것 같다.마이클 페더스가 각 원칙의 앞 머리를 따서 묶은 후 소개한 것이다.SOLID 원칙들은 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들간 결합도를 낮추는 High Cohesion - Loose Coupling(높은 응집도 - 느슨한 결합도) 원칙을 객체 지향의 관점에서 도입한 것이다.좋은 소프트웨어는..
리스코프 치환 원칙(Liskov substitution principle, LSP)Effective Java 를 보다가 접했는데, 검색해보니 객체지향 5대 원칙(SOLID) 중 하나라고 한다.이것도 나중에 정리하기 위해 참고 링크를 걸어두어야 겠다.모든 개발자가 알아야만 하는 SOLID 원칙리스코프 치환 원칙 ?리스코프 치환 원칙 예제References리스코프 치환 원칙 ?상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.리스코프 치환 원칙은 기능의 명세(계약)에 대한 내용이다.기능 실행의 계약과 관련해서 흔히 발생하는 위반 사례는 다음과 같다.명시된 명세에서 벗어난 값을 리턴한다.명시된 명세에서 벗어난 예외를 발생시킨다.명시된 명세에서 벗어난 기능..