해결된 질문
작성
·
326
·
수정됨
0
안녕하세요. 강사님.
객체는 제공하는 기능으로 정의된다!
=> 회원 객체 (암호 변경하기 기능)
대부분의 프로그램은 정보 표현을 위한 데이터(구조체, 객체)는 존재하기 마련일텐데요. 제가 생각하기에 회원이라는 객체는 초기 설계 과정에서 제공해야 될 기능에 중점을 두기보다는 "일반적으로 표현해야 될 정보에 기반(표현 정보 = 관리해야 될 데이터)해서 추출되지 않나?" 가 저의 생각입니다.
여기서 궁금한점은 표현해야 될(관리해야 될 데이터) 정보를 구조화한 것에 관련된 데이터를 조작하는 기능을 추가해도 외부에 제공하는 기능으로 정의된다는 말씀은 만족한다고 볼 수 있을까요 ?
제가 강의를 듣고 정리하자면 객체를 설계할 때는 외부에 제공할 기능에 중점을 두고 설계를 해야되는 것이라고 받아들였는데 기능보다 데이터가 중심이 되는 구조체성 자료에 기능을
할당하는 것도 올바른 방향인건지 여쭤보고 싶습니다.
감사합니다!
답변 1
1
데이터를 구조화한 것에 관련 데이터를 조작하는 기능을 추가하는 것도 외부에 제공하는 기능으로 정의하는 게 맞습니다.
보통 DB에서부터 구현이 출발할 때 말씀하신 것처럼 데이터 구조를 먼저 생각하고 그 다음에 기능을 도출하게 되죠.중요한 점은 캡슐화를 최대한 지키면 됩니다.실제 개발을 하다보면 당연히 아래 두 관점을 왔다 갔다 하게 됩니다.* 외부 관점에서 사용할 기능
* 구현 관점에서 데이터/구조일방적으로 한 방향으로 설계가 진행되기 보다는 두 관점을 오가면서 설계가 완성되어 간다고 보면 됩니다.