티스토리 뷰

java

[Java] Java Design Pattern

tonirr 2020. 3. 22. 12:03

디자인 패턴

효율적인 프로그래밍 기준

  • 중복된 코드가 없다.
  • 변경된 요구사항을 잘 받아들일 수 있어야 한다.

디자인패턴을 적용하여 프로그램을 만드는 중요한 이유

  • 다양한 추가 요구사항에 대해 좀 더 쉽게 대응하기 위한 것
  • 과거 경험에 의해 어떤 상황에서 요구사항에 대해 코드 수정을 하기 좋았던 것들을 정리

같은 상황에 하나의 패턴만이 정답은 아니다.

  • 가성이나 여러 상황에 따라 적절한 패턴을 적용

디자인패턴의 종류

  • 썬의 J2EE 패턴
  • JSP 패턴
  • 아키텍쳐 패턴
  • 게임 디자인패턴 등
  • 오리지널 파운데이션 패턴(GoF패턴)
    • 싱글턴 패턴
    • 플라이웨이트 패턴
    • 빌더 패턴
    • 옵저버 패턴
    • 어댑터 패턴
    • 파사드 패턴
    • 데코레이션 패턴
    • 브릿지 패턴
    • 스트래티지 패턴

디자인패턴과 클래스의 다형성

클래스의 특성을 이용한 디자인패턴의 시작

  • 밸류타입 사이에서의 형변환
    • 자동형변환
      • int intA = 10; double douA = intA;
    • 강제형변환
      • double douB = 12.34; int intB = (int)douB;
  • 레퍼런스타입 사이에서의 형변환
    • 클래스 사이에서도 형변환이 일어나는데 클래스 사이의 형변환은 상위와 하위클래스 사이에서 일어난다.
    • 하위클래스의 객체는 상위클래스의 객체에 대입할 수 있다.
  • 하위클래스 객체를 상위클래스 객체에 대입할 수 있다.
    • Super 클래스
      • 멤버: price, getPrice()
    • Sub 클래스
      • 멤버: price, name, getPrice()
    • Super obj = new Sub(); 하는 경우 memory에는 price, name, getPrice()가 남게 된다.
  • 상위클래스 객체를 하위클래스 객체에 대입할 수 없다.
    • Super obj1 = new Super();
    • Sub obj2 = obj1;
      • Sub 클래스의 설계도를 바탕으로 name 변수를 사용하면 생성된 객체에는 해당 변수가 없어 에러가 발생한다. 따라서 애초에 컴파일 에러가 난다.
  • 하위클래스를 상위클래스에 대입하는 이유?
    • 객체지향을 구현하는데 많은 역할을 해내는 기본기능이기 때문에 중요

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함