객체지향 설계란 의존성을 관리하는 것이고 객체가 변화를 받아들일 수 있게 의종성을 정리하는 기술이다.어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이에 의존성이 존재하게 된다. 실행시점: 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대
소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.확장에 대해 열려 있다. 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 '동작'을 추가해서 애플리케이션의 기능을 확장할 수 있다.수정에 대해 닫
신뢰할 수 있고 수정하기 쉬운 소프트웨어를 만드는 효과적인 방법 중 하나는 중복을 제거하는 것이다.DRY원칙모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 정말로 믿을 만한 표현 양식을 가져야 한다.자식 클래스의 메서드 안에서 super 참조를 이용해 부모 클래스
전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용한다.두 객체 사이의 의존성은 런타임에 해결된다. has-a 관계라고 부른다.상속과 달리 내부에 포함되는 객체의 구현이 아닌 퍼블릭 인터페이스에 의존한다. 객체사이의 동적관계이다.구현관점에