Tag: 观察者模式

在基于GUI的应用程序中处理不变性

我有一个基于GUI的应用程序(Kotlin),它由左边的Note列表(显示注释的标题)和右边选定的Note版本屏幕组成。 当用户在编辑屏幕上修改标题时,列表项必须显示新的标题。 在一个可变的世界里,我会做这样的事情: interface Note { fun title(): String fun content(): String fun setTitle(newTitle: String) fun setContent(newTitle: String) fun addListener(l: Listener) } class NoteListItem(n: Note) : Listener { init { n.addListener(this) } override fun onChange() { //from Listener repaint(); } fun repaint() { //code } } class NoteEditionScreen(n: Note) { fun onTitleTextChanged(newTitle: String) { n.setTitle(newTitle) […]