이전 시간에 인터페이스의 역할과 정보 숨김이 모듈화에 미치는 영향에 대해 알아봤다. 오늘은 강의를 통해 코드가 수명이 다할 때까지 계속 끊임없이 겪게 되는 변화, 그 변화에 경제적으로 대응하는 코드를 설계하는 기법에 대해서 공부할 예정이다.
모듈화가 충실히 되어있으면 적응력이 높아진다.
분리해내기 쉽고, 새로운 코드를 확장하기 쉽고, 기존 코드의 일부를 변경하기도 싶다.
코드를 설계하는 일종의 패턴이다.
Alan Kay가 말하길 OOP는 나에게 오직 메세지, 지역 보존, 상태 프로세스의 보호와 숨김 그리고 극도로 느린 지연된 바인딩이다.
소프트웨어 엔터티(클래스, 모듈, 함수 등)는 확장에 열리고 수정에 닫혀야 한다.
Bertrand Meyer
모듈이 이용하는 추상화 구현체가 뭐냐에 따라서 모듈의 역할이 바뀔 수 있다.
모듈 코드는 그대로인 상태에서 구현을 어떻게 제공하냐에 따라서 기능이 확장되거나 변경될 수 있다.
즉 적응력이 오를 수도 Testability도 같이 오른다.