여러가지 예제도 보고 책도 보고 강의도 보고 게시판 프로젝트를 만들다가 어느순간보니까 아무생각 없이 DAO와 Service에는 Interface를 만들고 구현 클래스를 만들고 있었다...

 

게시판 기능을 추가하다가 문득 내가 왜 Interface를 쓰는거지 하는 생각을 해보게 되었다.

 

Interface는 구현체에 대한 권한을 구현클래스에게 넘겨서 클래스 사이에 의존성을 줄이기 위함이라고 사전적으로는 알고 있었다. 예를 들어서 Interface한개가 있고 여러개의 기능을 하는 구현체가 있다면 다형성 측면에서 이득을 가져갈 수 있는 프로그램이 될 것이다.

 

그런데 내가 만들고 있는 토이프로젝트의 수준에서 봤을 때 Interface가 굳이 필요없다고 판단이 되었다.

 

Interface한개에 딱 한개의 구현체만이 존재하는데 굳이 필요가 있냐하는 의문이 들었던 것이다.

 

 

DAO는 정말 단순하게 Mapper클래스의 객체를 주입받아서 쿼리문이 있는 메소드를 불러오는 것만 구현이 되어 있어서 Interface를 삭제하였다. Service 같은 경우에도 단순하게 게시판이나 유저를 추가 삭제하는 역할만 하기 때문에 분리를 시킬 필요가 없을 것 같았다. 

 

 

 

삭----제

 

 

 

 

클래스를 잘게 분리하고 각 클래스에 맞는 역할을 잘 구분하는 것이 객체지향 프로그래밍에서 중요하다는 생각을 할 수 있게 해주었다... 

 

'스프링 입문을 위한 자바 객체 지향의 원리와 이해' 라는 책을 어제 구매해서 읽었는데 열심히 읽으면서 공부해야겠다고 생각했다..

'이런저런 생각' 카테고리의 다른 글

@Autowired와 @Inject의 차이?  (0) 2020.05.16

+ Recent posts