Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2장 객체지향 프로그래밍 #6

Open
lee-ji-hoon opened this issue Mar 19, 2023 · 3 comments · Fixed by #7, #10, #11 or #12
Open

2장 객체지향 프로그래밍 #6

lee-ji-hoon opened this issue Mar 19, 2023 · 3 comments · Fixed by #7, #10, #11 or #12

Comments

@lee-ji-hoon
Copy link
Owner

No description provided.

@ldh019 ldh019 linked a pull request Mar 19, 2023 that will close this issue
@lee-ji-hoon lee-ji-hoon linked a pull request Mar 20, 2023 that will close this issue
This was linked to pull requests Mar 20, 2023
@ldh019
Copy link
Collaborator

ldh019 commented Mar 25, 2023

이번엔 고민을 한 부분들보다는 상속과 캡슐화에 대한 내용을 잘 설명해주는 느낌이 강해서 크게 고민한 부분은 없었습니당
살짝 문제가 됐던 부분은 테스트 코드를 짜는데 비율로 할인한 영화의 비용이 double 타입의 BigDecimal로 바뀌는데 이때 equals를 하려니까 Int 타입이라 제대로 비교가 되지 않아서 어떻게 해야하나 고민했던것..?
+) 지훈이형 PR에 무슨일이 있었던거야

@lee-ji-hoon
Copy link
Owner Author

lee-ji-hoon commented Mar 26, 2023

고민한 내용

아래 내용은 책 후반부에도 나오는 내용이라서 그냥 기록용으로만 패스

DiscountPolicy.kt (interface)

interface DiscountPolicy {

    val conditions: ArrayList<DiscountCondition>

    fun calculateDiscountAmount(screening: Screening): Money

    fun getDiscountAmount(screening: Screening): Money
}

책에서는 abstract class로 구현했고 kotlin으로 따지만 varag으로 conditions를 받고 있다.

하지만 이 부분에서 개인적으로 abstract class 보다는 interface를 지향하기에 interface로 구현을 하게 됐다.

요약하자면 다중 상속, 무조건적인 구현 강제(최근 버전으로 와서는 조금 변하긴 했지만) 이런 장점 때문에 interface로 구현을 하게 됐는데 다들 어떻게 생각하는지 궁금하다

@audxo112 audxo112 linked a pull request Mar 26, 2023 that will close this issue
@audxo112
Copy link
Collaborator

audxo112 commented Mar 26, 2023

나중에 기획이 변경되어 더욱 복잡한 조건이 생겨도

각각의 인터페이스를 구현한 DiscountConditionSet, DiscountPolicySet 같은 클래스를 만들어서 더욱 확장이 가능하다는 점에서 깔끔한 구조 였다고 생각합니다.

+) 음 이번에도 테스트할 게 없군 하고 어떻게 짰나 보는데 다들 짰잖아 .. ?
+) Java 는 모듈 분리하는 게 좋을 듯 자꾸 import 됨 ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment