为什么C/C++开发人员很少明确用设计模式的思想交流,而Java开发人员非常重视用设计模式的“官话”进行交流?这是近期有人问我的问题。
一些激进的观点是C不适合做大的工程,只能捣鼓小程序,所以遇不到复杂的设计场景。这显然是片面的。在C中,同样会遇到涉及类似生产者、消费者吞吐、线程追随、轮询等等场景。只是较少看到C项目文档中出现“基于代理模式模式实现了数据缓冲器向A模块的功能传递”的论述。
其实不光是C,强大一点的C++也类似。开发者在面试时,也很少被专门问到设计模式的问题。C开发者在交流时不喜欢用设计模式的官话,而会用具体语境来交流,比如:“信号量sWatermark在水位达标瞬间被激活,触发UDP队列处理。线程Dealer会处理1/4水位以上的所有数据。”。
反倒是Java开发人员会非常重视用设计模式的官话来交流,比如“这个类库采用了适配器模式解决与你们平台的兼容性问题”。我觉得这是一种良好的习惯,使得双方很快就能理解问题的全貌。设计模式是对程序员经验的总结,进行归纳后形成的方法论。使用这种方法论指导开发工作,能够迅速帮助程序员成长。
谁知道这是为啥子呢?