orthogonality 에 대해서...
글쓴이: kws4679 / 작성시간: 월, 2011/04/18 - 10:43오후
열전달 공부를 하다가 이 단어가 나와서 문득 질문드려봅니다
실용주의 프로그래머 라는 책에서 클래스 간에는 orthogonality 를 유지하라고
나와있는데 예를들어 하나의 클래스 안에 다른 클래스를 포함하고있으면
독립성(직교성) 을 유지하고 있는지 궁금합니다
보통 클래스 설계시 타 클래스를 포함하고 있는 경우를 꽤나 본것 같은데
어쩔수 없다고는 하지만 다른 방법이 있는지 궁금합니다!!
Forums:


클래스를 포함하고 있는 건 괜찮습니다.
다만 여러 클래스가 같은 구현을(소스코드 중복)한다면 문제가 됩니다. 한 로직이 바뀌었을때 다른 부분 로직까지 수정해야 되지요. 이런 의미에서 orthogonality를 유지하라는 내용이 아닌 가 싶습니다. 약간 다른 말이긴 하지만 재사용성을 최대화 하라는 말과 비슷합니다.
클래스 안에서 다른 클래스를 포함하고 있다면, 두
클래스 안에서 다른 클래스를 포함하고 있다면, 두 클래스 간의 coupling 이 생깁니다.
높은 coupling 은 일반적으로 반직교적인 설계가 되구요.
이런식으로 클래스간의 dependency 가 생기면 한 클래스가 수정될 경우, 그와 의존된 다른 클래스의 수정이 불가피하죠.
따라서 coupling 을 줄이기 위해서 DI(Dependency Injection) 이나 IoC(Inversion of Control) 같은 패턴들이 등장을 했고,
자바 같은 정적 타입 언어에서는 이를 지원하기 위해서 스프링이나 구글 주스 같은 프레임워크들이 쓰이기도 하죠.
루비와 같은 동적 타입 언어에서는 덕 타이핑을 통해서 이런 의존성 문제를 해결할 수 있죠.