inflearn logo
강의

Course

Instructor

GoF's Design Patterns Learned Through Coding

Visitor Pattern Part 2 - Applying the Pattern

설계관련 궁금증이 있습니다.

232

ksh9241

8 asked

0

안녕하세요 선생님 이전강의에서 어떤식으로 구현할 지 간단하게 설명해준 내용을 듣고 이번 강의를 듣기전에 먼저 구현을 해본 뒤 영상을 시청한 후 차이점이 생겨서 질문 드립니다..

저는 클라이언트가 디바이스의 존재를 몰라도 사용할 수 있도록 Shape 인터페이스에 

void printToPhone();
void printToWatch();


두 메서드를 생성한 뒤 각 도형 자식클래스에 

@Override
public void printToPhone() {
device = new Phone();
device.printTo(this);
}

@Override
public void printToWatch() {
device = new Watch();
device.printTo(this);
}

이런식으로 메서드 내부에서 디바이스를 생성하여 처리하였습니다.
이후 클라이언트에서

Shape rectangle = new Rectangle();

rectangle.printToPhone();
rectangle.printToWatch();

이런식으로 호출하는 방법으로 설계를 진행하였는데
강의를 듣다보니 디바이스가 새로 추가될 때마다 선생님의 코드와는 다르게
Shape 인터페이스에 새로운 메서드를 추가하고 상속받은 모든 자식클래스에
추가로 수정을 하여야 하는 단점이 생겼습니다.

클라이언트의 입장에서 디바이스의 존재를 모르고 사용할 수 있도록 하는 것과
선생님 코드처럼 확장에 용이하게 하는 방법 중 설계를 어떤부분에 중점을 둬야할지
잘 모르겠습니다..

약간 디자인패턴과 조금 거리가 있는 질문을 드려서 죄송합니다.
좋은 강의 감사합니다.

 

디자인-패턴 java

Answer 0

많이 사용되는 패턴의 순서를 정한다면 어떤 순서일까요?

0

109

1

@Builder에 대해 사소한 질문

0

52

1

default 기능이 있는 interface와 추상클래스의 차이

0

49

1

실무 코드에 디자인 패턴 적용 시의 '기준'에 대해 조언을 얻고 싶습니다.

0

42

1

데코레이터 패턴, before 가 O(2^n) 인 이유

0

42

0

혹시 다음강의는 언제쯤..

0

346

1

volatile 사용 이유에 대해서 여쭤보고 싶습니다!

0

612

3

Spring Security 의 ProviderManager (AuthenticationManager) 도 옵저버 패턴을 사용하고 있다고 볼 수 있을까요?

0

390

2

싱글톤 패턴을 깨트리는 방법

0

551

1

코드에 약간 오타가 있는거 같습니다.

0

430

1

싱글톤 (Singleton) 패턴 구현 방법 3 - 2번 퀴즈에 대해 질문이 있습니다.

0

568

2

안녕하세요, 강의 순서 질문드립니다.

0

685

1

스프링 시큐리티 WebSecurityConfigurerAdapter deprecated 대체 코드

0

2429

1

팩토리메소드 = 추상팩토리?

2

922

1

중재자 패턴에 관하여~

0

509

1

undo 메소드 작업중에서

1

365

1

익명클래스로 객체 생성시 의문점

0

583

1

mediator패턴에서 객체끼리 순환참조는 어떻게 해결해야할까요

0

479

1

객체간에 this를 넘기는 부분에 관련해 질문이 있습니다..

1

366

1

전략 패턴과 상태 패턴에 관련해서 질문이 있습니다.

0

281

1

플라이웨이트 패턴 3부에서 HashMap 동시성 질문입니다.

0

254

1

enum 이 이른 초기화 방법이 아니라는 것은,

0

501

1

해당 코드가 C# 에선 접근 관련 컴파일 에러가 뜹니다.

0

430

1

설계관련 궁금증이 있습니다.

0

324

0