Skip to content

Commit 52339fb

Browse files
authored
Merge pull request #4 from lee-ji-hoon/kms
[1장_김명석] Pull Request
2 parents 390827d + 2f5a39c commit 52339fb

16 files changed

+114
-11
lines changed

src/main/java/legacy/kms/chapter01/Audience.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package legacy.kms.chapter01;
22

3-
public class Audience {
3+
class Audience {
44

55
private final Bag bag;
66

src/main/java/legacy/kms/chapter01/Bag.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package legacy.kms.chapter01;
22

3-
public class Bag {
3+
class Bag {
44

55
private Long amount;
66
private Invitation invitation;

src/main/java/legacy/kms/chapter01/Invitation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.time.LocalDateTime;
44

5-
public class Invitation {
5+
class Invitation {
66

77
private LocalDateTime when;
88
}

src/main/java/legacy/kms/chapter01/Theater.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package legacy.kms.chapter01;
22

3-
public class Theater {
3+
class Theater {
44

55
private final TicketSeller ticketSeller;
66

src/main/java/legacy/kms/chapter01/Ticket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package legacy.kms.chapter01;
22

3-
public class Ticket {
3+
class Ticket {
44

55
private Long fee;
66

src/main/java/legacy/kms/chapter01/TicketOffice.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.util.Arrays;
55
import java.util.List;
66

7-
public class TicketOffice {
7+
class TicketOffice {
88

99
private Long amount;
1010
private final List<Ticket> tickets = new ArrayList<>();

src/main/java/legacy/kms/chapter01/TicketSeller.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package legacy.kms.chapter01;
22

3-
public class TicketSeller {
3+
class TicketSeller {
44

55
private final TicketOffice ticketOffice;
66

src/main/kotlin/kms/InitClass.kt

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package kms.chapter01
2+
3+
internal class Audience(private val bag: Bag) {
4+
5+
fun buy(ticket: Ticket): Long {
6+
return if (bag.hasInvitation()) {
7+
bag.setTicket(ticket)
8+
0L
9+
} else {
10+
bag.minusAmount(ticket.fee)
11+
ticket.fee
12+
}
13+
}
14+
}

src/main/kotlin/kms/chapter01/Bag.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package kms.chapter01
2+
3+
internal class Bag(
4+
private var amount: Long = 0,
5+
private val invitation: Invitation? = null,
6+
private var ticket: Ticket? = null,
7+
) {
8+
fun hasInvitation(): Boolean {
9+
return invitation != null
10+
}
11+
12+
fun hasTicket(): Boolean {
13+
return ticket != null
14+
}
15+
16+
fun setTicket(ticket: Ticket?) {
17+
this.ticket = ticket
18+
}
19+
20+
fun minusAmount(amount: Long) {
21+
this.amount = this.amount - amount
22+
}
23+
24+
fun plusAmount(amount: Long) {
25+
this.amount = this.amount + amount
26+
}
27+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package kms.chapter01
2+
3+
import java.time.LocalDateTime
4+
5+
internal class Invitation(
6+
private val whenDateTime: LocalDateTime,
7+
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package kms.chapter01
2+
3+
internal class Theater(
4+
private val ticketSeller: TicketSeller,
5+
) {
6+
fun enter(audience: Audience) {
7+
ticketSeller.sellTo(audience)
8+
}
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package kms.chapter01
2+
3+
internal class Ticket(
4+
val fee: Long = 0,
5+
)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package kms.chapter01
2+
3+
import kotlin.collections.ArrayList
4+
5+
internal class TicketOffice constructor(
6+
private var amount: Long = 0L,
7+
private val tickets: MutableList<Ticket> = ArrayList(),
8+
) {
9+
constructor(amount: Long, vararg tickets: Ticket) : this(
10+
amount,
11+
ArrayList<Ticket>().apply {
12+
addAll(tickets.toList())
13+
},
14+
)
15+
16+
fun getTicket(): Ticket? {
17+
return if (tickets.isNotEmpty()) {
18+
tickets.removeAt(0)
19+
} else {
20+
null
21+
}
22+
}
23+
24+
fun minusAmount(amount: Long) {
25+
this.amount = this.amount - amount
26+
}
27+
28+
fun plusAmount(amount: Long) {
29+
this.amount = this.amount + amount
30+
}
31+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package kms.chapter01
2+
3+
internal class TicketSeller(
4+
private val ticketOffice: TicketOffice,
5+
) {
6+
7+
fun sellTo(audience: Audience) {
8+
val ticket = ticketOffice.getTicket()
9+
if (ticket != null) {
10+
val amount = audience.buy(ticket)
11+
ticketOffice.plusAmount(amount)
12+
}
13+
}
14+
}

0 commit comments

Comments
 (0)