본문 바로가기

OOP

(2)
응집도 vs 결합도 응집도 vs 결합도 일반적으로 좋은 설계란 높은 응집도와 낮은 결합도를 갖는 모듈로 구성된 설계를 의미합니다. OPP에서는 응집도는 높히고 결합도는 낮춰야 한다는 말을 많이 하게 됩니다. 그렇다면 응집도는 무엇이고 결합도는 무엇일까요? 응집도(Cohesion)란? 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도 독립적인 모듈이 되기 위해서는 응집도가 강해야 한다. 응집도가 낮은 클래스의 문제점 이해하기 힘들고 따로 재사용하기 힘들며 유지보수하기 힘들고 다른 클래스의 변화에 민감하게 된다. 결합도(Coupling) 란? 어떤 모듈이 다른 모듈에 의존하는 정보를 측정하는 것이다 즉, 두 모듈간의 상호 의존하는 정도 또는 두 모듈 사이의 연관관계를 이야기 한다. 독립적인 모듈이 되기 위해서는 결합..
객체 지향의 3가지 특징 - 캡슐화, 상속, 다형성 캡슐화(Encapsulation) 캡슐화는 일반적으로 연관된 목적을 가지고 있는 변수와 함수별로 클래스로 묶는 작업을 말합니다. 캡슐화는 외부의 잘못된 접근으로 값이 변하는 것을 막기 위해 클래스 내의 변수나 함수를 감추거나 드러내는 은닉성을 지니고 있습니다. 캡슐화의 대표적인 기능은 요구사항이 새롭게 추가되거나 바뀌어도 변경이 전파되지 않도록 막을 수 있다는 것입니다. 캡슐화란 외부에서 알 필요가 없는 부분을 감춤으로써 대상을 단순화하는 추상화의 한 종류입니다. 캡슐화가 중요한 이유는 불안정한 부분(구현)과 안정적인 부분(퍼블릭 인터페이스)을 분리하여 변경의 영향을 통제할 수 있기 때문입니다. 캡슐화를 통해 변경 가능성이 높은 부분을 객체 내부로 추상화하면 변경을 최소화할 수 있습니다. 상속(Inher..