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

[1주차] TicketOffice 생성자로 Ticket들을 "가변 인자"로 받는 방식이 적절한가? #2

Closed
9kyo-hwang opened this issue Nov 21, 2024 · 1 comment
Assignees
Labels
9kyo-hwang Chap01 객체, 설계

Comments

@9kyo-hwang
Copy link
Collaborator

9kyo-hwang commented Nov 21, 2024

페이지

12p


궁금한 내용

public class Ticketoffice {
  private Long amountprivate List<Ticket> tickets = new ArrayList<>();

  public TicketOffice(Long amount. Ticket ... tickets) {  // 이 부분
    this.amount = amountthis.tickets.addAll(Arrays.asList(tickets));
  }

  public Ticket getTicketO {
    return tickets.remove(0);   
  }

  public void minusAmount(Long amount) {
    this.amount -= amount;
  }

  public void plusAmountdong amount) {
    this.amount += amount;
  }
}

많은 프로젝트나 개발을 해본 것은 아니지만, 적어도 지금껏 공부하면서 가변 인자를 사용해본 적은 없습니다. 차라리

public TicketOffice(Long amount, List<Ticket> tickets) {
    this.amount = amount;
    this.tickets.addAll(tickets);
}

이런 식으로 사용하는 게 조금 더 낫지 않을까란 생각입니다.

// 기존 가변 인자 스타일
new TicketOffice(1000L, ticket1, ticket2, ticket3);

// List 사용 스타일
new TicketOffice(1000L, Arrays.asList(ticket1, ticket2, ticket3));

사실 java 언어로는 문법이 그렇게 복잡하지 않아서 좀 덜 한 편인 것 같은데, C++로 코드를 작성하면 조금 더 불편합니다.

template<typename... VariadicTickets>
FTicketOffice(int64_t InAmount, VariadicTickets&&... InTickets)
: Cash(InAmount)
{
  (Tickets.emplace_back(std::forward<VariadicTickets>(InTickets)), ...);
}

이런 식으로 Variadic Template(Parameter Pack) 코드를 작성해야 합니다. 그래서 더더욱 갸웃하게 되는 부분입니다.

여러 분은 어떻게 생각하시나요?

@9kyo-hwang 9kyo-hwang added the Chap01 객체, 설계 label Nov 21, 2024
@9kyo-hwang 9kyo-hwang self-assigned this Nov 21, 2024
@9kyo-hwang 9kyo-hwang changed the title [1주차] TicketOffice가 생성자로 Ticket들을 "가변 인자"로 받는 방식이 적절한가? [1주차] TicketOffice 생성자로 Ticket들을 "가변 인자"로 받는 방식이 적절한가? Nov 21, 2024
@9kyo-hwang
Copy link
Collaborator Author

각자 코딩 스타일 차이인 걸로...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
9kyo-hwang Chap01 객체, 설계
Projects
None yet
Development

No branches or pull requests

2 participants