객체를 사용하여 데이터 덩어리를 대체하면 전체 코드 크기가 줄어들뿐만 아니라 프로그램 코드가 더 체계적이고 읽기 쉽고 디버그하기 쉬워집니다.
매개 변수 / 변수의 긴 목록이 반드시 데이터 클럼프를 나타내는 것은 아닙니다. 중요한 것은 다양한 값들의 존재가 데이터 덩어리로 간주된다는 사실을 친밀하고 논리적으로 관련 지을때만입니다.
※객체 지향 프로그래밍에서 객체의 목적은 이 데이터에서 수행 할 수 있는 관련 데이터(필드)와 연산(메서드)을 모두 캡슐화하는 것입니다.
sample code
앞의 예에서 모든 변수는 하나의 "Person"객체로 캡슐화 될 수 있습니다. 이 객체는 그 자체로 전달 될 수 있습니다.
또한 프로그래머는 welcomeNew 메소드가 Person 클래스와 더 잘 연관되어 있다는 것을 인식하고 Person과 연관된 다른 관련 조치를 제안할 수 있습니다.
코드의 길이는 증가시켰지만 이제는 단일 Person이 다양한(겉으로 보기에는 관계가 없는) 필드가 아닌 하나의 객체로 쉽게 전달될 수 있습니다. 또한 관련 메서드를 클래스로 이동하여 각 메소드를 개별 인스턴스에서 쉽게 조작할 수 있습니다.
이러한 메소드는 더 이상 매개 변수 목록을 전달할 필요가 없습니다. 대신 객체 인스턴스 자체에 인스턴스 변수로 저장되므로 매개 변수 목록을 전달할 필요가 없습니다.