Skip to content

Instantly share code, notes, and snippets.

@sasssass
Last active July 7, 2020 04:11
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 sasssass/f47cdfb3e63a6935f9378d74f630721f to your computer and use it in GitHub Desktop.
Save sasssass/f47cdfb3e63a6935f9378d74f630721f to your computer and use it in GitHub Desktop.
// Object
interface Fruit{
fun getName() : String
}
open class Orange : Fruit{
override fun getName(): String = "Orange"
}
// Decorator
abstract class OrangeDecorator(var orange: Orange) : Orange(){
}
class BloodyOrange(orange: Orange) : OrangeDecorator(orange){
override fun getName(): String = orange.getName() + " Bloody"
}
class ThompsonOrange(orange: Orange) : OrangeDecorator(orange){
override fun getName(): String = orange.getName() + " Thompson"
}
class BigOrange(orange: Orange) : OrangeDecorator(orange){
override fun getName(): String = orange.getName() + " Big"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment