1.5 重复利用的软件
尽管ASD的C版本里有许多用来处理字符串的函数,我却从没有想过要把它们封装成通用的包。向人们解释使用这些函数要遵循哪些规则实在是太麻烦了。而且,根据多年和计算机用户打交道的经验,我知道了一件事,那就是:在使用你的程序时,如果因为不遵守规则而导致工作失败,大部分人不会反躬自省,反而会怪罪到你头上。C可以做好很多事情,但不能处理灵活多变的字符串。
C++(www.cppentry.com)版本的ASD spooler也使用字符—字符串函数,已经有人写过这些函数,所以我不用写了。和我当初发布C字符串规则比起来,编写这些函数的人更愿意让其他人来使用这些C++(www.cppentry.com)字符串例程,因为他不需要用户记住那些隐匿的规定。同样的,我使用串库作为例程的基础来实现分析文件名所需的指定的模式匹配,而这些例程又可抽取出来用于别的工作。
此后我用C++(www.cppentry.com)编程(www.cppentry.com)时,还有过几次类似的经历。我考虑问题的本质是什么,再定义一个类来抓住这个本质,并确保这个类能独立地工作。然后在遇到符合这个本质的问题时就使用这个类。令人惊讶的是,解决方法通常只用编译一次就能工作了。
我的C++(www.cppentry.com)程序之所以可靠,是因为我在定义C++(www.cppentry.com)类时运用的思想比用C做任何事情时都多得多。只要类定义正确,我就只能按照我编写它的初衷那样去用它。因此,我认为C++(www.cppentry.com)有助于直接表达我的思想并实现我的目的。