了解最新技术文章
在今天的代码审查中,我提出了我们不久前的一些见解。
我们有一个带有小部件的跨平台 UI 库。UI 小部件本质上服务于两个主人:使用它们的代码想要设置它们的样式并预填充它们的内容。使用它们的用户希望与它们交互并修改它们的内容。
因此,小部件通常提供修改其属性的功能,包括内容以及通知内容更改的事件。例如,编辑框可以提供SetText
功能和OnTextChange
事件。
问题是:如果SetText
修改文本,该OnTextChange
事件应该触发吗?当然,使用小部件的代码必须执行类似的操作,无论是谁进行更改。
但是,代码很容易调用回调本身。改变回调的作用要困难得多:代码需要将上下文传输到回调中。更糟糕的是,处理该SetText
场景的行为现在是在回调中实现的,可能远离对其SetText
自身的调用,对于代码的读者来说没有明显的联系。
因此,在我们的 UI 库中,我们遵循只有用户交互才会触发事件的规则。
24小时免费咨询
请输入您的联系电话,座机请加区号