inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

문제와 풀이

서비스 로직에 대해서 궁금한게 있습니다.

438

kjkj268

작성한 질문수 1

1


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
1. 두번째 문제인 결제 문제에서 PayService 클래스를 최대한 변경하지 않기 위해서 결제 수단을 찾는 로직을 메서드로 서비스 클래스에 작성했다가 따로 PayStore 클래스로 빼서 생성했는데, 원래 서비스 클래스(로직)에는 변경이 잘 이루어지지 않게 코드를 작성해야 하나요?

  1. PayStore 클래스를 추상 클래스로 작성했는데, PayStore 클래스에는 findPay 메서드만 있어서 abstract를 넣어야 할까? 생각을 했는데, PayStore 클래스라는 역할은 결제 수단을 찾는 역할만 수행하기 위해 클래스 변수를 생성하지 않게 하기 위함이고(PayStore 객체를 생성하지 못하게해서 초기화를 못하게 하기 위함) 다른 개발자들이 저 PayStore 클래스를 보고 "아 저런 용도로 사용해야겠구나" 라는 것을 알게하기 위함으로 abstract를 넣어준걸까요? 그리고 findPay 메서드를 static 메서드로 선언해준 이유가 잘 이해가 안됩니다..

java 객체지향

답변 1

4

김영한

안녕하세요. kjkj268님

  1. 이 부분에 대해서는 정답이 없습니다. 다만 여기서는 결제를 수행하는 부분과 결제를 자체를 생성하고 찾는 부분을 명확히 분리한 것으로 이해하시면 됩니다. 이렇게 되면 결제를 수행하는 부분을 변경할 때는 PayServie를 수정하면 되고, 결제를 찾는 부분을 변경할 때는 PayStore를 수정하면 되겠지요?

  2. 추상 클래스에 + static을 사용하면 개발자에게 이 클래스는 객체를 생성하지 말고, static에 있는 기능만 사용하라는 관례가 됩니다. 여기서는 PayStore의 경우 객체를 생성하는게 크게 의미가 없기 때문에 단순하게 static 메서드만 사용하도록 했습니다. 물론 객체를 생성하도록 추상 클래스를 제거하고 static를 함께 제거하셔도 됩니다.

감사합니다.

3

kjkj268

답변해주셔서 정말 감사합니다!!

답변을 보니 강의에서 현업에서의 관례, 또 그런 관례를 사용하게 된 이유를 차례대로 설명해주신게 기억이 나네요.. 뭔가 두 번 질문을 해서 죄송합니다..

항상 기본에 충실하겠습니다!

 

 

 

질문있습니다

0

30

1

1번 문제 질문입니다.

0

35

1

음악플레이어 문제 중 코드질문

0

28

1

9장 상속 문제와 풀이 질문

0

38

1

강의 자료에 사소한 오타가 있습니다.

0

50

2

매서드 참조값 반환??

0

67

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

71

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

85

1

공부방법

0

77

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

82

1

static method 질문

0

67

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

98

1

Method1에서 Student 객체

0

74

1

3강 18. null 질문

0

69

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

77

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

97

1

문의

0

104

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

90

1

상속과 그에 따른 메모리 구조 질문

0

62

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

74

1

수강기한

0

136

1

기본편 객체지향 프로그래밍에 대한 정의

0

88

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

87

1

추가 지식 학습

0

153

2