ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 토비의 스프링 - 1장 오브젝트와 의존관계
    읽은 책 2014. 7. 12. 16:58

    템플릿 메소드 패턴 : 슈퍼 클래스에 기본적인 로직의 흐름(커넥션 가져오기, SQL 생성, 실행, 변환)을 만들고, 그 기능의 일부를 추상메소드나 오버라이딩이 가능한 protected 메소드 등으로 만든 뒤 서브클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하도록 하는 방법

    => 템플릿 메소드 패턴 사용방법 찾아보기, 어디에 사용하는지.


    팩토리 메소드 패턴 : 서브클래스에서 구체적인 오브젝트 생성방법을 결정하게 하는 것.


    전략패턴 ( Strategy Pattern ) 자신의 기능 맥락에서 필요에 따라 변경이 필요한 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴.


    * 중용한 건 상속 구조를 통해 성격이 다른 관심사항을 분리한 코드를 만들어내고, 서로 영향을 덜 주도록 했는지를 이해하는 것.

    * 상속을 통한 상하위 클래스의 관계는 생각보다 밀접하다는 것.


    1.3 DAO의 확장

    모든 오브젝트가 변하지만 다 동일한 방식으로 변하는 것은 아니다. 이 의미는 변화의 이유와 시기, 주기등이 다르다는 뜻.


    connection class를 인터페이스로 빼서 각 회사의 독립적은 connection을 구현 할수 있도록 설계

    하지만 아직도 userDAO가 connection 메소드로 만들고 있으므로 userDAO 클래스에서 connection을 연결하도록 바꾸기.



    객체지향의 5가지 원칙

    SOLID

    SRP : Them single Responsibility principle : 단일 책임 원칙

    OCP : open closed principle :개방 폐쇄 원칙 ;어떤게 개방이 되어야 되고, 폐쇄가 되어야 하는지 감이 아직 잘 안온다. ; 높은 응집도와 낮은 결합도로 설명이 가능.

    LSP : the liskov substitution principle : 리스코프 치환 원칙

    ISP : the interface segregation principle : 인터페이스 분리 원칙

    DIP : the dependency Inversion principle : 의존관계 역전 원칙


    1.4 제어의 역전

     기본 코드는 main같이 흐름을 제어하는 클래스가 있는데, IoC는 누가 제어하는지 모르는 것을 의미, 서블릿에서는 컨테이너가 그런 일을 담당하게 된다. 

    템플릿 메소드 패턴에서도 IoC를 사용함. 원래는 userDAO가 능동적으로 connection을 제어했지만 daoFactory를 통해 수동적으로 바뀌게 되었던 것처럼 다양한 곳에서 사용된다. IoC를 사용하면 설계가 깔끔해지고, 유연성이 증가하며 확장성이 좋아진다. 


    1.5 스프링이 제공하는 IoC

    빈(bean) : 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트  애플리키에션에서 만들어지는 모든 오브젝트가 다 빈이 아니고 스프링이 직접 그 생성과 제어를 담당하는 오브젝트를 빈이라고 한다. 


    자바 빈에서 말하는 빈은?


    빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리 bean factory라고 부른다. 뒤에서 자세히 설명하겠지만 보통 빈 팩토리보다는 이를 좀 더 확장한 애플리 케이 션 컨텍스트의미cation context를 주로 사용한다

    애플리케이션 컨텍스트는 별도의 정보를 참고해서 빈(뾰젝트)의 생성, 관계설정 등의 제어 작업을 총괄한다. 스프링이 제공하는 애플리케이션 지원 기능을 모두 포함해서 이야기 하는 것.

    ApplicationContext 는 BeanFactory를 상속받는다. 















    * 시작은 코드를 짜고, 메소드로 분리-> 클래스 분리순으로 리팩토링을 하는건가?

Designed by Tistory.