본문 바로가기

스프링

[java] 클래스분리(상속을 통한 확장 리팩토링)

VO > 자바빈(JavaBean) : 파라미터가 없는 디폴트 생성자를 갖고 있어야한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하는데 필요하기 때문

1.     리플렉션 : 객체를 통해 클래스의 정보를 분석해내는 프로그램 기법(class.forName을 통해 메모리에 로딩된 객체의 메서드 생성자 등을 알아내서 사용가능)

2.     프레임워크 : 흐름을 주도한다. 프레임워크 위에 개발한 클래스를 등록하고 프레임워크가 흐름을 주도함

3.     Property : id, name, password(자바빈의 속성)

프로퍼티는 set/get 메서드를 이용해 수정 또는 조회 가능하다.

 

2개의 관심사(커넥션/SQL)을 아예 독립적으로 분리시키면 손쉽게 확장이 가능하고 상속을 사용하지 않아도 됨.

 

12. 여기서 다시 원점 new SimpleConnectionMaker를 통해 특정 클래스에 종속됨

17. 만약 D사에서 makeNewConnection 메서드를 openConnection 이라는 메서드로 변경한다면 일일이 다 변경해줘야 한다.

> 결론적으로 UserDao 자체를 다시 수정해야한다. (UserDao를 판매하지 못한다.)