Skip to content

Instantly share code, notes, and snippets.

@MaatheusGois
Created June 14, 2019 18:48
Show Gist options
  • Select an option

  • Save MaatheusGois/8d85ace66ebf64d75e46576e2d6b2a25 to your computer and use it in GitHub Desktop.

Select an option

Save MaatheusGois/8d85ace66ebf64d75e46576e2d6b2a25 to your computer and use it in GitHub Desktop.
import UIKit
protocol CompactadorStrategy {
func compactar(mensagem: String) -> String
func descompactar(mensagem: String) -> String
}
class Compactador {
private let strategy:CompactadorStrategy
init(strategy: CompactadorStrategy) {
self.strategy = strategy
}
func compactar(mensagem: String) -> String {
return self.strategy.compactar(mensagem: mensagem)
}
func descompactar(mensagem: String) -> String {
return self.strategy.descompactar(mensagem: mensagem)
}
}
class Zip: CompactadorStrategy {
func compactar(mensagem: String) -> String {
return "zip"
}
func descompactar(mensagem: String) -> String {
return "ZIP"
}
}
class Rar: CompactadorStrategy {
func compactar(mensagem: String) -> String {
return "rar"
}
func descompactar(mensagem: String) -> String {
return "RAR"
}
}
var nublado:Bool = true
var comp = Compactador(strategy: nublado ? Zip() : Rar())
print(comp.compactar(mensagem: "Joaquim"))
print(comp.descompactar(mensagem: "Joaquim"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment