为啥java设计里充满设计模式,了解历史,一切都并非偶然。

设计模式的由来:

建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。

肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。

一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。

与此同时James Coplien 在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作Advanced C++ Programming Styles and Idioms。同年Erich Gamma 得到了博士学位。

然后去了美国,在那与Richard Helm, Ralph Johnson ,John Vlissides 合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns – Elements of Reusable Object-Oriented Software) 一书,在此书中共收录了23个设计模式。

这四位作者在软件开发领域里以“四人帮”(英语,Gang of Four,简称GoF)而闻名,并且他们在此书中的协作导致了软件设计模式的突破。有时,GoF也会用于代指《设计模式》这本书。

Java的诞生:

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak。

目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。

由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

因为先出现的设计模式,所以JAVA中以设计模式为思想核心,就很容易理解了。也正是因为JAVA的大量普及,导致设计模式的广泛传播。

推荐一个很棒的第三方精简的 Laravel console

个人喜好经常写些命令行工具,laravel 很方便,但脚手架工程就 45M左右,使用 composer install --no-dev 也要24M左右,很笨重。 也尝试过 symfony 的 compos...

阅读全文

有关 PHP 和 js 浮点运算的坑

javascript 0.1 + 0.2 为啥不等于 0.3 ? (正确结果:0.30000000000000004) 0.8 * 7 为啥不等于 5.6 ? (正确结果:5.6000000000000005) PHP var_dump(intv...

阅读全文

彻底搞懂 PHP 变量结构体,多数文章观点不准确

PHP5 中的 zval // 1. zval typedef struct _zval_struct { zvalue_value value; zend_uint refcount__gc; zend_uchar type; zend_uchar is...

阅读全文

欢迎留言