Skip to content

Instantly share code, notes, and snippets.

@anuragajwani
Created May 3, 2020 17:20
Show Gist options
  • Save anuragajwani/62aa36f449c7d9f4fcaee5ddc5071720 to your computer and use it in GitHub Desktop.
Save anuragajwani/62aa36f449c7d9f4fcaee5ddc5071720 to your computer and use it in GitHub Desktop.
iOS Dependecy Injection Swinject Ricardo respose
struct Order {
var itemPrices: [Int]
}
protocol OrderValidator {
func hasMinimumSpend(order: Order) -> Bool
}
class OrderViewModel {
// add callback closure for state update
var didUpdate: (() -> ())?
var isPayButtonEnabled: Bool {
get {
return self.validator.hasMinimumSpend(order: self.order)
}
}
// Instance state
private var order: Order = Order(itemPrices: [])
// Instance dependency
private let validator: OrderValidator
init(validator: OrderValidator) {
self.validator = validator
}
func add(itemPriced: Int) {
self.order.itemPrices.append(itemPriced)
self.didUpdate?()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment