漫谈《C++语言核心》

设计模式篇外篇:
语言、设计模式

1.有一本书

我在大学里喜欢买打折书,学校几个书店每月会有大规模的打折书专场,铺满一个礼堂,都是1折2折地吐血打。
我每次都要买几本,哈哈,现在想起来就要笑。

那时候买过一本书《C++语言核心》(C++ :The core language),很薄很薄,200多页。
O'Reilly出版,原价29,只花了3块钱(赚到了)。
买的时候根本看不懂,就认了OReilly的牌子,当时手里有三个硬币,正好趁手,买!。

因为我一直是学Java的,加上那本书也实在是难懂(当时觉得),所以买了5年都没动过。
毕业后直接托运到了常州,虽然没有高阁可以束书,但扔在书架上积灰尘还是可以办到的

2. 5年后才读

07年我偶然泛起了心思,仔细把这本书读了一遍。
一读不得了,吓了一大跳!

这本简简单单的小书,虽然讲述的是如何从C语言过渡到C++,却轻轻松松地解决了我当时对Java OOP的许多疑点,一下子让我对面向对象的本质有了深刻了解。

作者讲述了如何用结构化的C语言来模拟OOP,在此基础上又怎样把这些设计技巧整合到语言核心中,设计出对象化的C++语言(以前我对C是否能够OOP抱否定态度,现在再也不敢这么说了)。

3.从此OOP再也没有秘密

读完这本书,我领悟到:
任何高级的语言语法,本质上都可以用低级语言的设计技巧来实现。
这些技巧在OOP语言中被称之为“设计模式”。而在结构化语言中,也存在着类似的技巧,只不过不再广泛流传了——语言设计者认识到了它们的价值,直接加到语言内核中了。

4.再想到脚本语言

从前年开始,我开始学习脚本语言,仔细研究了Beanshell,Groovy,JavaScript;稍微了解了Python和Ruby,可以看出这些语法更加高级的脚本语言更进一步地融合了许多设计模式(技巧)。它们在编译语言的基础上提供了更加强大的语法,降低了对技巧的要求。(譬如java需要使用Iterator模式来遍历,而脚本语言普遍可以直接使用闭包来完成)
从简化编程来说,脚本语言的未来是光明的。
但脚本语言简化的,也就是编程技巧而已。我对设计模式掌握得越好,对OOP编程领会得越深入,就越不太在乎脚本语言。

5.铺垫之后,不是结束的结束语

Java可以做任何事,这点我逐渐深信不疑,需要做的就是真正的掌握它。

你可能感兴趣的:(设计模式,C++,c,C#,oop)