package design_patterns /** * * pattern: Memento * * allows without violating encapsulation, to fix and save the state of an object * in such a way as to restore it to this state * */ class Bundle(val str: String) /** * * Android system emulating * */ class AndroidSystem { private var bundle: Bundle = Bundle("") fun saveBundle(bundle: Bundle) { this.bundle = bundle } fun restoreBundle() = bundle } /** * * TextView is an Android component that draws text on the screen * */ class TextView1 { private var text: String = "" fun setText(text: String) { this.text = text } fun text() = text fun draw() { println(text) } fun onSaveInstanceState(): Bundle { return Bundle(text) } fun onRestoreInstanceState(bundle: Bundle) { text = bundle.str } }