Skip to content

Instantly share code, notes, and snippets.

@Juanpe
Last active December 11, 2018 17:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Juanpe/1128f3fdd8615acecd0af22577c16a10 to your computer and use it in GitHub Desktop.
Save Juanpe/1128f3fdd8615acecd0af22577c16a10 to your computer and use it in GitHub Desktop.
// What
protocol LoggerStrategy {
func log(_ message: String)
}
// Who
struct Logger {
let strategy: LoggerStrategy
func log(_ message: String) {
strategy.log(message)
}
}
// How
struct LowercaseStrategy: LoggerStrategy {
func log(_ message: String) {
print(message.lowercased())
}
}
struct UppercaseStratgy: LoggerStrategy {
func log(_ message: String) {
print(message.uppercased())
}
}
struct CapitalizedStrategy: LoggerStrategy {
func log(_ message: String) {
print(message.capitalized)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment