Skip to content

Commit

Permalink
Refactor: main함수 내부에 반복되는 함수 밖으로 꺼냄
Browse files Browse the repository at this point in the history
  • Loading branch information
lina0322 committed Jan 9, 2021
1 parent 6e70425 commit 08b2219
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 18 deletions.
11 changes: 3 additions & 8 deletions Bank.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,12 @@ final class Bank {
private var tellers: [Teller] = []
private var finishedClientNumber = 0
private var businessTime: TimeInterval?

func printMenu() {
print(BankMenu.description, terminator: " ")
}


func operateBank(teller: Int, client: [Client]) {
var openTime = Date()
let openTime = Date()

openTime = Date()
clients = client
initTellers(teller)
clients = client
assignBusinessToTeller()
businessTime = Date().timeIntervalSince(openTime)
Dashboard.printCloseMessage(finishedClientNumber, businessTime)
Expand Down
4 changes: 4 additions & 0 deletions BankManagerConsoleApp/BankManagerConsoleApp/Dashboard.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import Foundation

class Dashboard {
static func printMenu() {
print(Menu.description, terminator: " ")
}

static func printStatus(for client: Client, about message: Message) {
let message = String(format: message.rawValue, client.waitingNumber)
print(message)
Expand Down
2 changes: 1 addition & 1 deletion BankManagerConsoleApp/BankManagerConsoleApp/Enum.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import Foundation

enum BankMenu: String {
enum Menu: String {
case start = "1"
case end = "2"

Expand Down
2 changes: 0 additions & 2 deletions BankManagerConsoleApp/BankManagerConsoleApp/Teller.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import Foundation
final class Teller {
private var windowNumber: Int
var workingQueue: DispatchQueue
var workingHours: TimeInterval = 0
private var isWorking: Bool = false
var isNotWorking: Bool {
return !isWorking
Expand All @@ -27,7 +26,6 @@ final class Teller {
isWorking = true
Dashboard.printStatus(for: client, about: .tellerStart)
Thread.sleep(forTimeInterval: needTimeToWork)
workingHours += needTimeToWork
Dashboard.printStatus(for: client, about: .tellerFinish)
isWorking = false
}
Expand Down
26 changes: 19 additions & 7 deletions BankManagerConsoleApp/BankManagerConsoleApp/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,25 @@

import Foundation

private func randomNumber(from minNumber: Int = 0, to maxNumber: Int) -> Int {
return Int.random(in: minNumber...maxNumber)
}

private func initClients(_ number: Int) -> [Client]? {
var clients: [Client] = []

for waitingNumber in 1...number {
clients.append(Client(waitingNumber: waitingNumber))
}
return clients
}

private func main() {
let bank = Bank()
let tellerNumber = 1
let tellerNumber = 3
let maxClientNumber = 30
let minClientNumber = 10
var isContinue = true
var randomNumber: Int {
return Int.random(in: 10...30)
}

func initClients(_ number: Int) -> [Client] {
var clients: [Client] = []
Expand All @@ -24,16 +36,16 @@ private func main() {
}

while isContinue {
bank.printMenu()
Dashboard.printMenu()

guard let input = readLine(), let command = BankMenu(rawValue: input) else {
guard let input = readLine(), let command = Menu(rawValue: input) else {
print(BankError.wrongInput.description)
continue
}

switch command {
case .start:
let clients = initClients(randomNumber)
let clients = initClients(randomNumber(from: minClientNumber, to: maxClientNumber))
bank.operateBank(teller: tellerNumber, client: clients)
case .end:
isContinue = false
Expand Down

0 comments on commit 08b2219

Please sign in to comment.