본문 바로가기

나만의 작업

J2EE의 소프트웨어 디자인 원칙

 

J2EE의 소프트웨어 디자인 원칙


  1.  인터페이스를 사용하라  

    1. 다형성 : 다수의 클래스가 한 개의 인터페이스를  동시에 구현한 경우, 동일 인터페이스라면

      어떤 클래스도 호출 가능

  2.  관심 영역의 분리 및 응집성

    1. 소프트웨어의 특정 기능만 특화시켜 컴포넌트화하면, 개발하기도 쉽고, 유지보수 하기도 편하며 재사용성도 높일 수 있다.
      관심 영역을 분리하게 되면 자연스레 응집도가 높아진다. 응집도란 하나의 클래스가 하나의 단위 작업, 목적에 얼마나 충실한가 하는 정도를 나타낸다.
  3.  복잡성을 숨겨라
  4.  느슨한 결합도(Loose coupling)

    1. 두 클래스가 서로에 대해 알아야 할 것이 적으면 적을수록, 서로 간에 결합도는 느슨해 진다. 이를 구현하기 위한 가장 일반적인 방법은 클래스 A가

      클래스 B에 있는 메소드를 사용해야 하는 경우 중간에 인터페이스를 사용하는 것.
      클래스 B가 인터페이스를 구현하면, 클래스 A는 인터페이스를 통해 클래스 B를 사용하는 식
      이 방식이 유용한 이유는 클래스 B를 수정해야 하는 경우, 아니 완전히 새롭게 만든다 해도 인터페이스 규약만 그대로 지키면 아무런 문제가 없다.

  5.  원격 프록시

    1. 클라이언트 객체는 프록시와 통신하고 프록시는 실제 " 서비스 객체"와 통신하는데 필요한 모든 복잡한 내용을 내부에 숨긴다.

      클라이언트 객체의 관점에선 지역 객체와 통신하는 것 이상은 아니다.

  6.  선언적인 제어(배포서술자 : DD)를 많이 사용하라

    1. 코드 수정 없이 DD를 수정하는 것만으로도 시스템 행동을 바꿀 수 있으니.. 웹 어플리케이션을 작성 할 때 DD를 사용하여 많은 부분을 구현하면 할수록,
      프로그램 소스 코드는 일반적이며, 추상적인 것이 될 것이다.

출처 : Head First Servlet&JSP 내용중...