VO > 자바빈(JavaBean) : 파라미터가 없는 디폴트 생성자를 갖고 있어야한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하는데 필요하기 때문
1. 리플렉션 : 객체를 통해 클래스의 정보를 분석해내는 프로그램 기법(class.forName을 통해 메모리에 로딩된 객체의 메서드 생성자 등을 알아내서 사용가능)
2. 프레임워크 : 흐름을 주도한다. 프레임워크 위에 개발한 클래스를 등록하고 프레임워크가 흐름을 주도함
3. Property : id, name, password(자바빈의 속성)
프로퍼티는 set/get 메서드를 이용해 수정 또는 조회 가능하다.
고객의 DB패스워드가 변경되었다고 해보자. UserDao의 바이너리를 판매한 상태이다. Dao 소스코드를 전달하여 줄 것인가?? 수정해서 쓰라고?? 비싼건데???
DB커넥션 관심을 추상클래스의 상속을 통해 서브클래스를 분리해버리는 것이다.
각 회사에 맞도록 서브클래스가 커넥션을 담당한다.
1. 템플릿 메소드 패턴 : 기본적인 로직의 흐름(커넥션/SQL/반환)을 만들고, 그 기능의 일부를 추상메소드나 오버라이딩 가능한 protected 메소드 등으로 만든 뒤 서브클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하도록 하는 방법.(슈퍼클래스에서는 디폴트 기능을 정의해두거나 비워두고, 서브클래스에서 선택적으로 오버라이드)
2. 위 사진처럼 서브클래스에서 구체적인 오브젝트 생성 방법을 결정하게 하는 것을 팩토리 메소드 패턴이라고 부름
서브클래스만 전달하여 이부분만 고치라고 할 수 있음. UserDao의 내용은 안보여줘도 됨
하지만 상속이라는 방법이 불편하게 느껴짐. 자바는 다중상속을 허용하지 않으므로
클래스의 분리
'스프링' 카테고리의 다른 글
[java] IOC_오브젝트팩토리 (0) | 2020.10.10 |
---|---|
[java] 추상화 인터페이스(클래스분리 리팩토링) (0) | 2020.10.06 |
[java] 클래스분리(상속을 통한 확장 리팩토링) (0) | 2020.10.06 |
[static] 자바 static 정리 (0) | 2020.10.02 |
[토비] 초난감DAO 메소드 추출기법 (0) | 2020.09.24 |