Skip to content

Instantly share code, notes, and snippets.

@saldisobi
Last active March 11, 2023 10:36
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 saldisobi/f6c98594a1c27cece600926925a0194b to your computer and use it in GitHub Desktop.
Save saldisobi/f6c98594a1c27cece600926925a0194b to your computer and use it in GitHub Desktop.
interface CommandReceiver {
fun onAddClicked()
fun onTextUpdate(newText: String)
fun onDeleteClicked()
fun onListClicked()
fun onSaveClicked(text: String)
fun processCommand(command: Command) {
command.execute(this)
}
}
interface Command {
fun execute(receiver: CommandReceiver)
}
class AddCommand : Command {
override fun execute(receiver: CommandReceiver) {
receiver.onAddClicked()
}
}
class TextUpdateCommand(private val newText: String) : Command {
override fun execute(receiver: CommandReceiver) {
receiver.onTextUpdate(newText)
}
}
class DeleteProductCommand : Command {
override fun execute(receiver: CommandReceiver) {
receiver.onDeleteClicked()
}
}
class ListCommand() : Command {
override fun execute(receiver: CommandReceiver) {
receiver.onListClicked()
}
}
class SaveCommand(private val text: String) : Command {
override fun execute(receiver: CommandReceiver) {
receiver.onSaveClicked(text)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment