상속과 조합
상속의 위험성상속은 중복코드를 없애고 코드 재사용을 하기 위해 등장한 개념이다.내가 필요로 하는 클래스와 매우 유사한 클래스가 있다면 해당 클래스를 상속하면 같은 코드를 여러번 쓸 필요가 줄어든다. 상속은 코드 재사용을 위해 캡슐화를 희생시킨다. 부모 클래스의 코드를 재활용하기 위해 자식 클래스도 재활용할 코드를 모두 공개되기 때문이다. 경고 1. 자식
상속의 위험성상속은 중복코드를 없애고 코드 재사용을 하기 위해 등장한 개념이다.내가 필요로 하는 클래스와 매우 유사한 클래스가 있다면 해당 클래스를 상속하면 같은 코드를 여러번 쓸 필요가 줄어든다. 상속은 코드 재사용을 위해 캡슐화를 희생시킨다. 부모 클래스의 코드를 재활용하기 위해 자식 클래스도 재활용할 코드를 모두 공개되기 때문이다. 경고 1. 자식
메시지, 인터페이스메시지는 객체들이 협력하기 위해 사용할 수 있는 유일한 의사소통 수단이다.메시지는 오퍼레이션 이름과 인자로 구성된다. receiver.message(argument); 이렇게 메시지를 구성할 수 있다. 메시지와 메서드그렇지만 메시지가 한 메서드를 가르키는 건 아니다.메서드는 메시지를 수신하는 객체, 인자에 따라 달라진다.메서드는 메시지를
GRASP 패턴일반적인 책임 할당을 위한 소프트웨어 패턴. 객체에게 책임을 할당할 때 지침으로 삼을 수 있는 원칙들. 영화 예매 시스템을 통해 GRASP 패턴을 익혀보자. 도메인 개념에서 출발하기어떤 책임을 할당해야 할 지 고민해야 될 때 가장 먼저 고려해야 할 게 도메인이다. 영화에는 금액 할인 영화, 비용 할인 영화가 있다. 할인 조건에는 순번 조건
응집도와 결합도응집도모듈 내부 요소가 연관된 정도.모듈의 내부 요소가 한 목적을 위해 긴밀하게 협력하는 정도. 높을 수록 좋다. 좀더 구체적으로 설명하면, 하나의 변경이 발생할 때 모듈 내부에서 발생하는 변경의 정도하나 바꾸려고 할 때, 모듈 전체를 바꿔야 되면 응집도가 높은 것. 하나의 변경이 일어날 때, 모듈 하나만 바꿔서 해결 가능하면, 응집도가 높은
역할, 책임, 협력하나의 프로그램을 만들기 위해서는 다양한 객체가 자신의 로직을 실행해서 전체 기능을 완성한다. 중요한 건, 다양한 객체가 한 기능을 만들기 위해 메시지 를 주고 받으며 상호작용한다는 사실이다. 이처럼 어플리케이션의 기능을 완성하기 위해 여러 객체가 상호작용하는 것을 협력이라고 한다. 각 객체들이 수행하는 자신의 로직을 책임이라고 하고, 객