6.4 通用性导致更好的信息隐藏
通用方法在文本类和用户界面类之间提供了一个更清晰的分离,从而实现了更好的信息隐藏。文本类不需要知道用户界面的具体细节,比如如何处理退格键;这些细节现在被封装在用户界面类中了。可以添加新的用户界面功能,而不需要在文本类中创建新的支持函数。通用接口也减少了认知负荷:从事用户界面工作的开发者只需要学习一些简单的方法,这些方法可以被重用于各种用途。
初始版本的文本类中的backspace
方法是一个错误的抽象。它意图隐藏哪些字符被删除的信息,但用户界面模块确实需要知道这一点;用户界面开发人员很可能会阅读backspace
方法的代码,以确认其精确行为。把这个方法放在文本类中只会使用户界面开发人员更难获得他们需要的信息。软件设计中最重要的元素之一是确定谁需要知道什么,以及何时需要。当细节很重要的时候,最好是把它们明确化,并且尽可能易于理解,比如修改后的退格操作的实现。把这些信息隐藏在接口后面只会造成模糊性。
Last updated