profile
CDD - Coffee Driven Development

[오브젝트] 유연한 설계

확장 가능하고 변화에 유연한 설계를 위해 확장에 열려 있어야하고, 수정에 대해서 닫혀 있어야 한다.이를 위해서는 구현에 의존하지 않고, 역할(인터페이스)에 의존해야 한다. 즉, 런타임 의존성을 확장할 수 있으면서 컴파일 타임의 의존성은 유지해야 한다. 이는 추상화에 의

2022년 1월 27일
·
0개의 댓글
·

[오브젝트] 메세지와 인터페이스

앞선 장에서 역할과 객체에 대해서 자세하게 살펴보았다. 메세지를 호출할때, 적합한 역할을 먼저 찾고, 역할에 해당하는 객체를 찾았다. 이와 비슷하게 책임에 대해서도 메세지 인터페이스( 오퍼레이션 )와 런타임에 결정되는 메서드로 나눌 수 있다. 추상화 된 관점에서 메세지

2022년 1월 17일
·
0개의 댓글
·

[오브젝트] 2장 객체지향 프로그래밍

객체 지향의 본질은 단순히 클래스가 아닌 객체에 초점을 맞추어야 한다. 실제 비즈니스가 어떤 객체가 필요한지, 그 객체가 어떤 상태와 행동을 가져야 하는지 정의하는 것이 먼저다.객체는 독립적인 존재가 아닌 협력하는 공동체의 일원이다. 객체는 메세지를 통해 다른 객체와

2021년 12월 30일
·
0개의 댓글
·

[오브젝트] 1장 객체, 설계

제대로 실행되어야 함변경이 용이이해하기 쉬워야함위의 코드는 실행이 가능하지만, Theater는 TicketSeller와 Audience에 강하게 의존하고 있어 변경이 취약하고 유지보수를 힘들게 만든다. 또, 개발자는 기억력을 자신의 훌륭한 기억력을 뽐내는 직업이 아니다

2021년 12월 26일
·
0개의 댓글
·