设计模式篇外篇:
语言、设计模式
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++编程中,良好的编程习惯对于代码的可读性、可维护性和性能至关重要。以下是一些关键要点的详细说明: 1. **防卫式声明**: 在头文件(header file)中,我们通常使用防卫式声明(Guard Statement)来防止...
在后续章节中,读者可以期待更深入地学习C++编程的基础,包括变量、控制流、函数、类和对象等核心概念,以及更高级的主题如模板、异常处理和STL(Standard Template Library)。通过这本书,读者不仅能掌握C++编程的...
根据提供的文档内容,本文将对Python语言的相关知识点进行详细的解读与总结。 ### Python语言简介 Python是一种高级编程语言,由Guido van Rossum在1989年创立,并于1991年首次发布。Python的设计哲学强调代码的...
小学语文知识漫谈楚国的语言文字
"网络语言漫谈" 网络语言是伴随着网络技术的飞速发展和互联网的普及而逐渐形成的一种新的言语社团。网络语言有广义和狭义之分。广义的网络语言指的是网络时代和“网络”和“电子”技术有关的一切语言。可以分为三类...
漫谈兼容内核之一:ReactOS怎样实现系统调用 漫谈兼容内核之二:关于kernel-win32的对象管理 漫谈兼容内核之三:Kernel-win32的文件操作 漫谈兼容内核之四:Kernel-win32的进程管理 漫谈兼容内核之五:Kernel-win32...
谈兼容内核之一:ReactOS怎样实现系统调用.pdf 漫谈兼容内核之二:关于kernel -win32的对象管理.pdf 漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 漫谈兼容内核之四:Kernel-win32的进程管理.pdf 漫谈兼容内核...
漫谈核心素养词汇的生产过程.pptx
《西方语言学流派漫谈》的PPT课件涵盖了语言学的重要概念和各个流派,旨在探讨人类语言的本质、起源、意义以及它对我们行为的影响。语言作为人类独有的特质,不仅是区分人类与其他物种的关键,也是理解人类智能、...
标题《基础课程C语言与Java语言的优劣漫谈》和描述指出了文章的主要内容,即对C语言和Java语言在基础课程教学中的优劣进行分析和讨论。在阅读所给部分内容时,我们可以提炼出以下知识点: 1. C语言与Java语言的应用...
架构漫谈(一):什么是架构? 架构漫谈(二):认识概念是理解架构的基础 架构漫谈(三):如何做好架构之识别问题 架构漫谈(四):如何做好架构之架构切分 架构漫谈(五):什么是软件 架构漫谈(六):软件架构...
01.漫谈兼容内核之一:Wine的系统结构.pdf 02.漫谈兼容内核之二:关于kernel-win32的对象管理.pdf 03.漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 04.漫谈兼容内核之四:Kernel-win32的进程管理.pdf 05.漫谈...
青少年核心价值观漫谈.pptx
- **面向对象程序设计**:特别强调了使用C++语言进行面向对象程序设计的技巧和最佳实践。 - **测试与改错**:讲解软件测试的重要性和方法,以及如何有效地进行错误定位和修复。 - **维护与再生工程**:讨论软件维护...
在"C++简单爱(一)"这个主题中,我们将会探讨C++编程语言的基础知识,旨在为初学者提供一个清晰易懂的入门指南。C++是一种广泛应用的面向对象的编程语言,由Bjarne Stroustrup于1979年在C语言的基础上发展而来,它...
华为防火墙技术漫谈,理论篇共包含十章,涵盖了会话与状态检测、安全策略、攻击防范、NAT、GRE 、L2TP 、IPSec 、SSL、双机热备、出口选路的原理、应用场景及配置方法
青少年核心价值观漫谈PPT课件.pptx
华为防火墙技术漫谈_PDF电子书下载 高清 带索引书签目录_徐慧洋,白杰,卢宏旺编著_北京:人民邮电出版社_P548_2015.05