0.3 为什么用C++(www.cppentry.com)更简单
为什么在C方案中进行扩展会如此困难呢?难就难在没有一个合适的位置来存储辅助的状态信息——在本例中是文件名和“noisy”标记。在这里,这个问题尤其让人恼火,因为在原来的情况下根本就不需要状态信息,只是到后来才知道需要存储状态。
往原本没有考虑存储状态信息的设计中添加这项能力是很难的。在C中,最常见的做法就是找个地方把它藏起来,就像我这里采用“noisy”标记一样。但是这种技术也只能做到这样;如果同时出现多个输出文件来搅局,就很难有效控制了。C++(www.cppentry.com)版本则更简单,因为C++(www.cppentry.com)鼓励采用类来表示类似于输出流的事物,而类就提供了一个理想的位置来放置状态信息。
结果是,C倾向于不存储状态信息,除非事先已经规划妥当。因此,C程序员趋向于假设有这样一个“环境”:存在一个位置集合,他们可以在其中找到系统的当前状态。如果只有一个环境和一个系统,这样考虑毫无问题。但是,系统在不断增长的过程中往往需要引入某些独一无二的东西,并且创建更多这类东西。