zoukankan      html  css  js  c++  java
  • [转]阎宏博士的JAVA与模式

    阎宏,1964年出生于天津市。1987年毕业于中国科技大学近代物理系,1990年于中科院理论物理所获硕士学位,1992年获博士学位,翌年赴日本京都大学进行博士后研究工作。

    作者曾于美国花旗银行(Citibank)、汤臣金融(Thomson Financial)、奥本海默基金(Oppenheimer)等处供职,进行了多年的软件开发、架构设计和技术管理工作。

    阎宏博士对面向对象理论和设计模式有精到的见解,对中国的古典智慧也有深厚的积淀,更为难得的是能够把两者融洽地结合起来。阅读阎宏博士的文章,你会发现文章中处处闪烁着作者智慧的光点。阎宏博士著有《Java与模式》一书,本专栏编辑了阎宏博士的几篇文章和书中的一些章节,以飨读者。

    您阅读后有什么感想,欢迎在JR论坛中发贴和大家讨论。同时,也可以与作者联系:JavaPatterns@hotmail.com
    1. 什么是模式

    什么是模式,这是一个看上去简单,但是又非常不简单的问题。我见过很多人,学习模式理论已经很长时间了,但是并不真正理解这一点。

    模式理论的基本思想其实起源于中国,是中国文化的固有思想。你,我,我们中每一个自幼受到中国思想熏陶的人,都自然具有这一基本思想。模式的思想存在于中国文化的各个角落,包括哲学、法律,医学,兵法,体育,文学,直到我们行为处事的方式。

    模式的思想,长期以来不存在于西方思考方式中,至今也不是西方文化的主流思想。因此学习模式,切忌以西方式的思路学习。不然的话,缘木求鱼,事倍功半。

    简单地讲,所谓模式,就是得到很好研究的范例。设计模式,就是设计范例。在孙子兵法中,充斥着各种模式。孙子说,“至于死地而后生”,就是战争模式。三十六计,条条都是模式,比如“走为上”,“空城计”也都是战争模式。

    这些模式中的每一个都具有典型意义,具有学习价值。通过研究这些模式,学习者可以相互交流,可以在自己的实践中举一反三,推陈出新,加以应用。

    在我们参加高考的时候,老师给我们很多的典型题目,作为练习使用。这些题目一般来说不会在高考中原封不动地出现,但是这些题目会有一些内容启发我们的思考,可以让我们举一反三,从而为考试做好准备。

    模式不是框架(Framework),也不是过程。模式也不是简单的“问题的解决方案”,因为模式必须是典型问题的解决方案,是可以让学习者举一反三的,有研究价值、有交流价值,有自己的名字的例子。

    模式不能套用。不要以为在任何一个系统中都要使用某些设计模式。系统的设计也不是含有设计模式就好,更不是含有越多的设计模式就越好。

    在《三国演义》中,马恕就套用了“至于死地而后生”的战争模式,最后倒了大霉。在高考中,你如果把老师交给你的典型题目答案倒背如流,在一个个放到考试卷子上去,放得越多,恐怕你就离考上大学越远。

    比如你喜欢三十六计,如果你在执行某项军事任务的时候,千方百计地将尽可能多的三十六计用到里面,每次都来一个“走为上”,那么你的朋友和敌人都会觉得某名奇妙。如果你非三十六计中的计谋不用,或者认为非三十六计中的策略不算好策略,那么别人只能认为你不懂三十六计的精髓。

    中国传统医学也是一样,有时看上去症状相似的病,却要使用不同的处方,即所谓辨证用药。如果每次给病人看病,都要捧出某本医案,将尽可能多的著名医案用到你的病人身上,恐怕过不了多久就麻烦大了。

    中国古代的法律,就是案例法;也就是需要法官在研习案例的基础之上,举一反三,适当发挥。开个玩笑,如果你喜欢上“轧美案”,逢美必轧,恐怕需要及早做好该行的准备。

    关于模式的理论的起源、历史,以及模式理论与中国文化的渊源、哲学思想,设计模式背后的OO设计原则,二十几个设计模式的详细讲解,他们在Java语言中如何实现,如何在自己的系统设计中举一反三、推陈出新,以及Java语言本身使用了什么设计模式,可以看一看我的新书《Java与模式》(电子工业出版社出版)。

    简单工厂(Simple Factory)模式
    本文是作者的新书《Java与模式》的节选,主要内容如下:

    第12章  简单工厂(Simple Factory)模式 
    12.1  工厂模式的几种形态 
    12.2  简单工厂模式的引进 
    12.3  简单工厂模式的结构 
    12.4  简单工厂模式的实现 
    12.5  简单工厂模式与其他模式的关系 
    12.6  模式的优点和缺点 
    12.7  简单工厂模式在Java中的应用 
    12.8  女娲抟土造人 

    请在下面打开pdf文件阅读本文

    简单工厂(Simple Factory)模式

    工厂方法(Factory Method)模式

    本文是作者的新书《Java与模式》的节选,主要内容如下:

    第13章  工厂方法(Factory Method)模式 
    13.1  引言 
    13.2  工厂方法模式的结构 
    13.3  工厂方法模式在农场系统中的实现 
    13.4  关于工厂方法模式的实现 
    13.5  Java语言中工厂方法模式的例子 
    13.6  工厂方法模式与其他模式的关系 
    13.7  女娲举绳造人 
    13.8  其他的例子 

    请在下面打开pdf文件阅读本文

    工厂方法(Factory Method)模式

    抽象工厂(Abstract Factory)模式

    本文是作者的新书《Java与模式》的节选,主要内容如下:

    第14章  抽象工厂(Abstract Factory)模式 
    14.1  引言 
    14.2  问题 
    14.3  抽象工厂模式的结构 
    14.4  在什么情形下应当使用抽象工厂模式 
    14.5  抽象工厂模式在农场系统中的实现 
    14.6  抽象工厂模式的另一个例子 
    14.7  “开-闭”原则 
    14.8  关于模式的实现 
    14.9  女娲造万物的故事 

    请在下面打开pdf文件阅读本文

    抽象工厂(Abstract Factory)模式

    单例(Singleton)模式

    本文是作者的新书《Java与模式》的节选,主要内容如下:

    第15章  单例(Singleton)模式 
    15.1  引言 
    15.2  单例模式的结构 
    15.3  在什么情况下使用单例模式 
    15.4  单例类的状态 
    15.5  一个实用的例子:属性管理器 
    15.6  Java语言中的单例模式 
    15.7  专题:不完全的单例类 
    15.8  相关模式 
    15.9  附录:双重检查成例的研究 
    15.10  给读者的一点建议 

    请在下面打开pdf文件阅读本文
    单例(Singleton)模式

    单例模式与MX记录

    本文是作者的新书《Java与模式》的节选,讲解如何将单例模式应用到实际系统设计中去,主要内容如下:
    第16章  专题:单例模式与MX记录 
    16.1  问题与解决方案 
    16.2  目录服务与MX记录 
    16.3  JNDI架构介绍 
    16.4  如何使用JNDI编程 
    16.5  系统设计 
    16.6  讨论 
    请在下面打开pdf文件阅读本文
    单例模式与MX记录

    多例(Multiton)模式与多语言支持

    本文是作者的新书《Java与模式》的节选,讲解多例(Multiton)模式以及如何将多例模式应用到实际系统设计中去,主要内容如下:

    第17章  专题:多例(Multiton)模式与多语言支持 
    17.1  引言 
    17.2  多例模式 
    17.3  多语言项目的设计 

    请在下面打开pdf文件阅读本文
    多例(Multiton)模式与多语言支持

    序列键生成器与单例及多例模式

    本文是作者的新书《Java与模式》的节选,讲解单例(Singleton)及多例(Multiton)模式以及如何将它们应用到实际系统设计中去,主要内容如下:
    第18章  专题:序列键生成器与单例及多例模式 
    18.1  问题 
    18.2  将单例模式应用到系统设计中 
    18.3  将多例模式应用到系统设计中 
    18.4  讨论 

    请在下面打开pdf文件阅读本文
    序列键生成器与单例及多例模式

    《Java与模式》的目录
    阎宏博士
    《Java与模式》作者
    www.WebEndsHere.com(或者http://218.6.168.109/jeffyan77)
    JavaPatterns@yahoo.com

    转自:http://www.uml.org.cn/sjms/sjms060801.htm

  • 相关阅读:
    day16-bootstrap和django
    day18-2-django之分页和session
    day17-django的ORM与其他
    day18--django3之Ajax
    day12--前端基础之css
    day12--前端基础之html
    面向对象高级、异常处理和socket
    回归python培训——类与对象、继承、多态和多态性、封装、绑定方法和非绑定方法、反射
    python函数、装饰器、迭代器、生成器
    nginx反向代理时保持长连接
  • 原文地址:https://www.cnblogs.com/luqingfei/p/4015064.html
Copyright © 2011-2022 走看看