Closed taxol1203 closed 3 years ago
아이템 87에서 물리적 표현과 논리적 내용이 같은 예시로 Name class가 언급되어 있습니다. 성명은 논리적으로는 이름, 성, 중간이름으로 구성되고 물리적으로는 인스턴스가 각 구성요소를 잘 표현했습니다. 이런 경우에 물리적 표현과 논리적 내용이 같다고 말할 수 있습니다. 그런데 stringList class는 논리적으로는 단순히 문자열의 리스트를 나타내는 것이나, 이 논리적 형태를 물리적 표현 형태로 잘 나타내기 위해 양방향 연결리스트를 사용하였습니다. 코드로 잘 나타내기 위해 사용한 물리적인 표현 형태가 기존의 논리적인 형태랑 많이 달라진 경우라고 할 수 있겠습니다.
그래서 462p에 나온 stringList class의 합리적인 직렬화 형태가, writeObject와 readObject 메소드로 리스트 크기를 입력 후, 이어서 모든 원소(string)를 순서대로 기록하여, 말 그대로 문자열의 리스트를 나타내는 논리적 형태를 잘 따른 형태가 되는 것 같습니다.
코드 87-2는 물리적 표현과 논리적 표현의 차이가 달라, 기본 직렬화 형태에 적합하지 않은 클래스라고 되어있습니다.
위 설명을 읽어봐도 논리적과 물리적 표현의 차이라는 것이 정확이 뭘 말하는지 모르겠습니다.