닭발개발

[헤드퍼스트 디자인패턴] 4일차. 56-69p 본문

책책책 책을 읽읍시다‼ ver.개발/[ 헤드퍼스트 디자인패턴 ]

[헤드퍼스트 디자인패턴] 4일차. 56-69p

D269 2023. 4. 28. 00:51
728x90

 

 

요약

  • 동적으로 행동 지정하기 : 움직이는 오리 만들기 실행 중에 오리의 행동을 바꾸고 싶으면 원하는 행동에 해당하는 Duck의 세터 메소드를 호출합니다.
  • 캡슐화된 행동 살펴보기 클래스 다이어그램에 있는 각 화살표와 클래스들이 어떤 관계인지, 직접 연필로 써보는 게 중요하다.
  • "A에는 B가 있다" 각 오리에는 FlyBehavior와 QuackBehavior가 있으며, 각각 나는 행동, 꽦꽥 행동을 위임받는다. -> 이렇게 두 클래스를 합치는 것 : '구성(composition)을 이용한다.' 라고 한다.

디자인 원칙3: 상속보다는 구성을 활용한다. -> 유연성을 향상시킬 수 있음.


첫 번째 디자인 패턴 : 전략패턴 : 알고리즘군을 정의하고 캡술화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다. 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.


패턴과 전문 용어

  1. 서로 알고 있는 패턴은 막강하다.
  2. 패턴을 사용하면 간단한 단어로 많은 얘기를 할 수 있다.
  3. 패턴 수준에서 이야기하면 '디자인'에 더 오래 집중할 수 있다.

디자인 패턴 사용법

  • 라이브러리나 프레임워크가 도와주지 못하는 부분을 도와주는 것이 바로 디자인 패턴이다.

일단 패턴을 완전히 읽혀두면, 어떤 코드가 유연성 없이 엉망으로 꼬여있는 스파게티 코드라는 사실을 알 수 있다.


나의 객체지향 도구상자

  1. 객체지향 기초 (추상화 캡슐화 다형성 상속)
  2. 객체지향 원칙
  3. 객체지향 패턴 - 전략패턴

 

 

발췌

💡 첫 번째 디자인 패턴 : 전략패턴 : 알고리즘군을 정의하고 캡술화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다. 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다

 

메모

디자인 패턴은 개발자 사이에서 서로 모두 이해할 수 있는 용어를 재공한다. 패턴 수준에서 생각 할 수 있기 때문에 아키텍처를 생각하는 수준도 끌어올려준다.

 

 

 

 

 

728x90
반응형