모델이란 무엇인가?

JinCode96·2023년 4월 9일
0

JAVA

목록 보기
3/8

모델이란?

  • 현실 세계에는 다양한 객체가 있고 그 객체들은 각각의 역할을 가지고 있다.
  • 역할이 정해져있다는 의미로 객체를 설계할 때 모델을 만든다고 표현.
  • 객체지향프로그래밍에선 클래스를 모델을 설계하는 도구라고 한다.
  • 객체_Object(현실) = 클래스_class(프로그래밍적) = 모델_Model(소프트웨어 공학적)

클래스로 만들 수 있는 모델의 종류

- DTO, VO

  • Data Transfer Object, Value Object
  • 데이터를 하나로 묶어서 이동시킬 때 사용한다.

- DAO

  • Data Access Object
  • 데이터베이스에 데이터(VO, DTO)를 저장,수정 하거나 검색,삭제를 하기 위해서 만들어지는 모델
  • CRUD 동작을 가지고있는 클래스, 비즈니스 로직을 처리하는 클래스
  • CRUD : Create, Read, Update, Delete

잘 설계된 VO 클래스란?

객체지향프로그래밍에서 클래스는 객체를 모델링(설계) 하는 도구이다. 모델링은 설계를 하는 것인데 설계는잘해야한다.그러면 어떻게 설계해야 VO클래스를 잘 설계할 수 있을까?

  • 정보 은닉(Information Hiding)
  • setter, getter 메서드 만들기
  • 생성자를 이용한 초기화
  • toString()으로 객체 값 출력하기

- 정보은닉

  • 다른 객체에게 자신의 정보를 숨기고(private) 동작, 기능(메서드) 만을 통해 접근을 허용하는 것
  • 클래스 외부에서 특정 정보에 접근을 막는다는 의미
  • 정보은닉된 데이터에 접근할 수 있는 방법으로 setter,getter와 생성자가 있다.

- setter, getter 메서드 만들기

  • getter, setter를 통해서 직접 접근이 아닌 우회해서 접근할 수 있도록 한다.
  • 어떠한 조건을 걸어서 터무니 없는 값을 넣지 못하도록 할 수 있다.

- 생성자를 이용한 초기화

  • 생성자 메서드를 오버로딩(Overloading)해서 객체 생성과 동시에 초기화 가능

- toString()으로 객체 값 출력

  • 인스턴스 변수는 메모리의 번지값을 저장하고 있기 때문에 출력해보면 번지값이 나옴.
  • Object객체에 내장되어있는 toString()메서드를 재정의하여 객체가 가지고 있는 모든 값을 출력할 수 있다.

요약

  1. 모든 생태정보를 은닉하기(private)
  2. 디폴트 생성자 만들기
  3. 생성자 메서드를 오버로딩 하여 객체 초기화
  4. setter, getter 메서드 만들기
  5. toString() 메서드 만들기
public class PersonVO {
	private String name;
    private int age;
    
    public PersonVO() {
    	// 초기화 없음
    }
    public PersonVO(String name, int age) {
    	this.name = name;
        this.age = age;
    }
    public void setName(String name){
    	this.name = name;
    }
    public void getName() {
    	return this.name;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public void getAge() {
    	return this.age;
    }
    
    public String toString() {
    	return name + \t + age;
    }
}
profile
꾸준히 성장하는 개발자

0개의 댓글