所谓的坏味道是来自于记忆中不好的感觉,是长年累月被臭代码恶心的结果...
今天在修 bug 的时候碰到了如下代码(稍微简化下):
大概意思比较简单:用一个 isMaximized 状态来跟踪窗口的最大化状态,然后用两个工具maximizedWindow
、unmaximizeWindow
方法来操作。
仔细想想感觉有一点坏味道
,比如:
用注释去约束警告 ⚠️ 其他用户
但是这个注释很无力,有人可以无视他...
对于这种状态和操作直接有必然联系,不能独立操作的资源(上面的 isMaximized 和 maximizeWindow、unmaximizeWindow),一定要封装起来,让调用者通过资源接口去访问。
比如上文的例子可以通过一个 MaximizeManager 对象去最大化窗口
所有的操作都要从这个资源管理器走,不要单独导出 maximizeWindow、unmaximizeWindow。
类似的例子还有:
还有些和特定平台绑定的代码,还是留作下篇讨论吧。