[자바스터디] 7. 자바기초(6)

SooYeon Yeon·2021년 1월 25일
0

2021 자바스터디

목록 보기
7/13
post-thumbnail

자바 코드 실습

역할,책임,협력(객체지향의 사실과 오해) -> 제일 중요한 것은 메시지다

협력

| 객체들이 어플리케이션의 기능을 구현하기 위해 수행하는 상호작용

  • 두 객체 사이의 협력은 하나의 객체가 다른 객체에게 도움을 요청 할 때 시작 됨.
  • 메시지 전송은 객체 사이의 협력을 위해 사용할 수 있는 유일한 커뮤니케이션 수단
  • 객체가 객체에게 무엇인가를 요청, 다른 객체가 필요할 때 위임 또는 협력 함
  • 객체를 자율적으로 하기 위해 내부 구현을 캡슐화 함
  • 메시지를 전송해 협력을 요청, 메시지를 수신한 객체는 도움이 필요한 경우 또 요청해 처리
  • 객체들 사이의 협력을 구성해 요청,응답을 통해 기능 구현

책임

| 객체가 협력에 참여하기 위해 수행하는 행동

  • 크게 '하는것'과 '아는것'으로 나눔

하는 것

| 내가 하는 역할에 대한 책임

- 객체를 생성하거나 계산 수행하는 등의 스스로 하는것
- 다른 객체의 행동을 시작시키는 것
- 다른 객체의 활동을 제어하고 조절하는 것

아는 것

| 내가 도움 받을 객체를 아는 것

- 사적인 정보에 관해 아는것
- 관련된 객체에 관해 아는것
- 자신이 유도하거나 계산할 수 있는 것에 관해 아는것

역할

| 객체들이 협력안에서 수행하는 책임의 집합

  • 협력 내에서 다른 객체로 대체할 수 있음을 나타내는 것
  • 역할을 대체하기 위해서는 각 역할이 수신할 수 있는 메시지를 동일한 방식으로 이해해야 함
  • 동일한 역할을 수행할 수 있다는 것은 해당 객체들이 협력 내에서 동일한 책임의 집합을 수행 할 수 있다는 것을 의미
  • 객체지향 설계의 단순성,유연성,재사용성을 뒷받침

VO(value object)

| 값 객체를 뜻하며 데이터를 담는 객체를 의미

  • read Only 속성을 가짐
  • 읽기 전용이기 때문에 getter만 존재

다음과 같이 VO를 사용할 수 있음

public class AccountVo {
	private String id;
	private String pw;
	
	
	public String getId() {
		return this.id;
	}
	
	public String getPw() {
		return this.pw;
	}
	
}

VO 장점

  • 데이터 전달을 위해 가장 효율적인 방법
  • 가독성과 유지보수 측면에서 좋음
  • Network traffic이 줄어들 수 있음

VO 단점

  • 클래스 선언을 위해 많은 코드가 필요
  • 파일 수가 많아지면 관리가 힘듦

0개의 댓글