前言
《设计模式》这本经典的书里面定义了20多种设计模式,虽然都是面向对象的,似乎需要C++、Java这样的语言才能实现,但是根据笔者前面反复强调的,Linux内核虽然是用C语言和汇编语言写成,但是其实也到处充满了面向对象的设计。面向对象更多的是一种思想,而不是一个语言。我们可以用C语言实现极大的OO,Linux内核到处都有OO。
模板方法
比如,在Linux的设备驱动框架中,就用了一种非常经典简单的设计模式——模板方法(Template Method),当然还有一些其他的设计模式。而设计模式牛逼的地方在于,高手往往不经意之间已经用到了设计模式,甚至自己都不知道。如果高手没有系统地学习过设计模式,这其实不见得是一个问题。这并不意味着它不懂设计模式,只是他自己都不知道自己用到了哪个模式。而设计模式学习的终极目的,当然也是忘记设计模式,这个跟练独孤九剑没什么区别,到最后其实是无招胜有招。
模板方法这个模式,强调定义一个基类,这个基类实