当前位置:首页 > 工业技术
Java与模式
Java与模式

Java与模式PDF电子书下载

工业技术

  • 电子书积分:26 积分如何计算积分?
  • 作 者:阎宏编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:7505380001
  • 页数:1024 页
图书介绍:Java作为在Internet上最流行的编程语言,其发展非常迅速。从1995年诞生以来,经过短短的几年发展,如今它已不仅仅是一门语言,而已发展为一门技术,包括Java的芯片技术、Java的编译技术、Java的数据库连接技术、基于Java的信息家电的联网技术、企业信息服务的综合求解方案技术等等。Java语言作为一种优秀的面向对象的程序设计语言,具有平台无关性、安全机制、高可靠性和内嵌的网络支持等特点。由于Java语言的这些特点,使得Java语言成为当前网络应用程序编写的首选工具之一。本书是一本讲解设计原则以及最为常见的设计模式的实用教材,目的是为了工作繁忙的Java系统设计师提供一个快速而准确的设计原则和设计模式的辅导。本书分为55章,第一个章节讲解一个编编程模式,说明此模式的用意、结构,以及这一模式适合于什么样的情况等。每一个章节都附有多个例子和练习题,研习这些例子、完成这些练习题可以帮助读者更好地理解所讲的内容。大多数的章节都是相对独立的,读者可以打开本书,从任何一章开始读起。为了满足不同程序的读者的需要,本书提供了一些标为“专题”的章节,不阅读这些章节,对阅读本书的标准章节没有影响
《Java与模式》目录
标签:编著 模式

第一部分 3

第1章 模式的简史和形而上学 3

1.1 模式是什么 3

1.2 软件模式的简史 3

1.3 模式的起源 4

1.4 与道家思想的关系 5

1.5 软件的永恒之道 8

1.6 模式的要素 10

1.7 本书讲解模式的格式 11

第2章 统一建模语言UML简介 13

2.1 建造世界贸易中心 13

2.2 什么是UML 14

2.3 UML包括什么 15

2.4 类图 17

2.5 时序图 24

2.6 状态图 25

2.7 UML及建模的工具 27

第二部分 33

第3章 软件的可维护性与可复用性 33

3.1 软件系统的可维护性 33

3.2 系统的可复用性 37

3.3 老子论“不武” 40

第4章 “开-闭”原则(OCP) 41

4.1 什么是“开-闭”原则 41

4.2 怎样做到“开-闭”原则 41

4.3 与其他设计原则的关系 43

4.4 策略模式对“开-闭”原则的支持 45

4.5 在其他设计模式中的体现 46

4.6 一个重构做法的讨论 49

第5章 专题:Java语言的接口 53

5.1 什么是接口 53

5.2 为什么使用接口 54

5.3 Java接口常见的用法 56

第6章 专题:抽象类 61

6.1 什么是抽象类 61

6.2 抽象类的用途 61

6.3 基于抽象类的模式和原则 64

6.4 什么时候才应当使用继承复用 64

7.1 美猴王的智慧 69

第7章 里氏代换原则(LSP) 69

7.2 什么是里氏代换原则 70

7.3 里氏代换原则在设计模式中的体现 71

7.4 墨子论“取譬” 73

7.5 从代码重构的角度理解 74

第8章 依赖倒转原则(DIP) 85

8.1 为何而“倒转” 85

8.2 复用与可维护性的“倒转” 86

8.3 依赖倒转原则 86

8.4 怎样做到依赖倒转原则 88

8.5 Java对抽象类型的支持 90

8.6 一个例子:账号、账号的种类和账号的状态 92

8.8 依赖倒转原则的优缺点 95

8.7 墨子论“取周” 95

第9章 接口隔离原则(ISP) 97

9.1 什么是接口隔离原则 97

9.2 一个角色隔离原则的例子 98

9.3 定制服务的例子 100

第10章 合成/聚合复用原则(CARP) 103

10.1 合成和聚合的区别 103

10.2 复用的基本种类 103

10.3 从代码重构的角度理解 105

第11章 迪米特法则(LoD) 109

11.1 迪米特法则的各种表述 109

11.2 狭义的迪米特法则 109

11.3 迪米特法则与设计模式 114

11.4 广义的迪米特法则 116

11.5 广义迪米特法则在类的设计上的体现 117

11.6 广义迪米特法则在代码层次上的实现 120

11.7 老子论“圣人之治” 120

第三部分 127

第12章 简单工厂(Simple Factory)模式 127

12.1 工厂模式的几种形态 127

12.2 简单工厂模式的引进 128

12.3 简单工厂模式的结构 134

12.4 简单工厂模式的实现 136

12.5 简单工厂模式与其他模式的关系 140

12.6 简单工厂模式的优点和缺点 142

12.7 简单工厂模式在Java中的应用 143

12.8 女娲抟土造人 146

第13章 工厂方法(Factory Method)模式 151

13.1 引言 151

13.2 工厂方法模式的结构 153

13.3 工厂方法模式在农场系统中的实现 157

13.4 关于工厂方法模式的实现 162

13.5 Java语言中工厂方法模式的例子 165

13.6 工厂方法模式与其他模式的关系 168

13.7 女娲举绳造人 170

13.8 其他的例子 170

第14章 抽象工厂(Abstract Factory)模式 179

14.1 引言 179

14.2 问题 181

14.3 抽象工厂模式的结构 184

14.4 在什么情形下应当使用抽象工厂模式 189

14.5 抽象工厂模式在农场系统中的实现 191

14.6 抽象工厂模式的另一个例子 196

14.7 “开-闭”原则 197

14.8 相关的模式与模式的实现 198

14.9 女娲造万物的故事 200

14.10 附录:Java AWT的Peer架构与抽象工厂模式 206

第15章 单例(Singleton)模式 209

15.1 引言 209

15.2 单例模式的结构 210

15.3 在什么情况下使用单例模式 215

15.4 单例类的状态 216

15.5 一个实用的例子:属性管理器 217

15.6 Java语言中的单例模式 223

15.7 专题:不完全的单例类 226

15.8 相关模式 227

15.9 附录:双重检查成例的研究 230

15.10 给读者的一点建议 234

第16章 专题:单例模式与MX记录 235

16.1 问题与解决方案 235

16.2 目录服务与MX记录 237

16.3 JNDI架构介绍 237

16.4 如何使用JNDI编程 238

16.5 系统设计 241

16.6 讨论 246

第17章 专题:多例(Multiton)模式与多语言支持 253

17.1 引言 253

17.2 多例模式 254

17.3 多语言项目的设计 258

第18章 专题:序列键生成器与单例及多例模式 267

18.1 问题 267

18.2 将单例模式应用到系统设计中 269

18.3 将多例模式应用到系统设计中 281

18.4 讨论 284

第19章 建造(Builder)模式 285

19.1 引言 285

19.2 建造模式的结构 286

19.3 建造模式的活动序列 290

19.4 建造模式的实现 291

19.5 众神造人的神话故事 295

19.6 JavaMail中的建造模式 296

19.7 一个发送邮件的例子 298

19.8 在什么情况下使用建造模式 308

19.9 建造模式与其他模式的关系 309

第20章 原始模型(Prototype)模式 317

20.1 引言 317

20.2 变量、对象以及对象的引用 318

20.3 Java对象的复制 319

20.4 原始模型模式的结构 323

20.5 模式的实现:深复制和浅复制 327

20.6 孙大圣的身外身法术 329

20.7 在什么情况下使用原始模型模式 340

20.8 原始模型模式的优点和缺点 341

20.9 原始模型模式与其他模式的关系 341

21.1 什么是“冷藏”和“解冻” 345

第21章 专题:JavaBean的“冷藏”和“解冻” 345

21.2 什么可以“冷藏” 346

21.3 Beans.instantiate()方法 348

21.4 怎样在JSP中使用Beans.Instantiate()方法 353

21.5 与装饰模式的关系 354

第四部分 359

第22章 适配器(Adapter)模式 359

22.1 引言 359

22.2 类的适配器模式的结构 360

22.3 类的适配器模式的效果 361

22.4 对象的适配器模式的结构 362

22.5 在什么情况下使用适配器模式 364

22.6 Iterator与Enumeration 364

22.7 利用适配器模式指方为圆 367

22.8 适配器模式在架构层次上的应用 370

22.9 关于模式实现的讨论 373

22.10 适配器模式与相关的模式 373

第23章 缺省适配(Default Adapter)模式 379

23.1 鲁智深的故事 379

23.2 Window Adapter是缺省适配模式 381

23.3 模式的结构 384

23.4 在什么情况下使用本模式 385

23.5 模式的实现 385

23.6 J2SE中的缺省适配模式 386

23.7 一个例子 387

第24章 专题:XMLProperties与适配器模式 391

24.1 引言 391

24.2 SAX2浏览器 393

24.3 开始XMLProperties项目 398

第25章 合成(Composite)模式 409

25.1 对象的树结构 409

25.2 介绍合成模式 411

25.3 安全式和透明式的合成模式 412

25.4 安全式的合成模式的结构 413

25.5 透明式的合成模式的结构 416

25.6 合成模式的实现 419

25.7 道士的故事 420

25.8 一个绘图的例子 421

25.9 AWT库中的例子 428

25.10 合成模式与其他模式的关系 429

26.2 装饰模式的结构 435

第26章 装饰(Decorator)模式 435

26.1 引言 435

26.3 装饰模式应当在什么情况下使用 441

26.4 孙大圣的故事 441

26.5 使用装饰模式的优点和缺点 442

26.6 模式实现的讨论 443

26.7 装饰模式与其他模式的关系 446

26.8 实例:GrepReader 447

26.9 一个例子:发票系统 451

26.10 附录:关于适配器模式与装饰模式的对话 464

第27章 专题:设计模式在Java I/O库中的应用 469

27.1 引言 469

27.2 Java I/O库的设计原则 471

27.3 装饰模式的应用 472

27.4 半透明的装饰模式 480

27.5 适配器模式的应用 483

27.6 从byte流到char流的适配 489

第28章 代理(Proxy)模式 495

28.1 引言 495

28.2 代理的种类 496

28.3 代理模式的结构 498

28.4 代理模式的时序 501

28.5 Java 2.0对代理模式的支持 502

28.6 高老庄悟空降八戒 506

28.7 代理模式的优点和缺点 508

28.9 代理模式与其他模式的关系 509

28.8 代理模式的实现 509

29.1 问题 513

29.2 系统设计 513

第29章 专题:智能引用代理 513

29.3 系统的时序 516

29.4 系统的源代码 516

第30章 专题:虚拟代理的例子 521

30.1 问题 521

30.2 系统的要求 521

30.3 系统的设计 522

30.4 系统的时序 522

30.5 系统的源代码 523

31.1 引言 527

第31章 享元模式(Flyweight Pattem) 527

31.2 单纯享元模式的结构 528

31.3 复合享元模式的结构 532

31.4 模式的实现 537

31.5 一个咖啡摊的例子 543

31.6 咖啡屋的例子 548

31.7 享元模式应当在什么情况下使用 553

31.8 从代码重构的角度看享元模式 553

31.9 享元模式的优点和缺点 555

31.10 相关的模式 555

第32章 门面(Facade)模式 561

32.1 引言 561

32.3 门面模式的实现 563

32.2 门面模式的结构 563

32.4 在什么情况下使用门面模式 564

32.5 迪米特法则(LoD) 564

32.6 一个例子 565

32.7 使用门面模式的设计 568

32.8 Session门面模式 572

第33章 桥梁(Bridge)模式 575

33.1 引言 575

33.2 桥梁模式的结构 577

33.3 Java语言中的Peer架构 579

33.4 驱动器和JDBC驱动器 583

33.5 从重构的角度考察 584

33.6 桥梁模式和其他模式的关系 590

33.7 八戒“转世投胎”的故事 592

33.8 关于桥梁模式的实现 594

33.9 在什么情况下应当使用桥梁模式 595

第五部分 603

第34章 不变(Immutable)模式 603

34.1 引言 603

34.2 不变模式的结构和实现 603

34.3 不变模式在Java语言中的应用 605

34.4 不变模式的优点和缺点 606

34.5 不变模式与享元模式的关系 606

34.6 一个例子:复数类 607

第35章 策略(Strategy)模式 621

35.1 引言 621

35.2 模式的实现 623

35.3 Java语言内部的例子 624

35.4 排序策略系统 626

35.5 一个例子:图书折扣的计算 627

35.6 在什么情况下应当使用策略模式 632

35.7 策略模式的优点和缺点 632

35.8 策略模式与其他模式的关系 633

35.9 设计原则的讨论 635

35.10 诸葛亮的锦囊妙计 635

第36章 模版方法(Template Method)模式 641

36.1 引言 641

36.2 模版方法模式的结构 641

36.3 “好莱坞原则” 643

36.4 一个例子 644

36.5 继承作为复用的工具 647

36.6 Java语言里面使用过的模版方法模式 648

36.7 模版方法模式中的方法 650

36.8 模版方法模式在代码重构中的应用 651

36.9 重构的原则 655

36.10 西天取经的八十一难 656

第37章 专题:Servlet技术中的模式 659

37.1 Servlet技术介绍 659

37.2 模版方法模式的使用 661

37.3 观察者模式的应用 665

第38章 观察者(Observer)模式 671

38.1 引言 671

38.2 观察者模式的结构 672

38.3 另一种实现方案 676

38.4 Java语言提供的对观察者模式的支持 679

38.5 菩萨的守瓶龟 686

38.6 Java中的DEM事件机制 687

38.7 观察者模式与其他模式的关系 688

第39章 专题:观察者模式与AWT中的事件处理 691

39.1 引言 691

39.2 DEM的结构 691

第40章 专题:观察者模式与SAX2浏览器 705

40.1 引言 705

40.2 SAX2是怎么工作的 706

40.3 ContentHandler接口 706

40.4 怎样实现ContentHandler接口 708

40.5 怎样使用contentHandler 710

40.6 缺省适配模式与DefaultHandler 711

40.7 简单工厂模式的应用 716

第41章 专题:观察者模式与Swing定时器 717

41.1 为什么需要定时器 717

41.2 Utility定时器与Swing定时器的区别 717

41.3 使用Swing定时器的方法 719

41.4 观察者模式的应用 720

41.5 单例模式的应用 724

第42章 专题:MVC模式与用户输入数据检查 729

42.1 什么是MVC模式 729

42.2 MVC是架构模式 731

42.3 MVC模式在J2EE技术中的应用 733

42.4 从代码重构的角度查看 735

42.5 用户输入检查与MVC模式 736

42.6 SQL注射 738

第43章 迭代子(Iterator)模式 743

43.1 引言 743

43.2 迭代子模式的结构 745

43.3 迭代子模式的实现 755

43.4 迭代子模式的优点和缺点 757

43.5 一个例子 757

43.6 迭代子模式与其他模式的关系 763

第44章 专题:Java对迭代子模式的支持 769

44.1 Java聚集 769

44.2 Java聚集中的迭代子 771

44.3 java.util.Iterator接口 772

44.4 Java迭代子接口ListIterator 775

44.5 Enumeration与Iterator 780

44.6 其他相关模式 782

第45章 责任链(Chain of Responsibility)模式 785

45.1 从击鼓传花谈起 785

45.2 责任链模式的结构 785

45.3 纯的与不纯的责任链模式 788

45.4 Java1.0版的AWT事件处理机制 789

45.5 《红楼梦》中击鼓传花的故事 790

45.6 Java系统的解 792

45.7 责任链模式的实现 798

45.8 对象的树结构 799

45.9 DHTML中的事件处理 800

45.10 责任链模式与其他模式的关系 804

46.1 线程 809

第46章 专题:定时器与击鼓传花 809

46.2 定时器 810

46.3 击鼓传花 812

第47章 命令(Command)模式 823

47.1 引言 823

47.2 命令模式的结构 824

47.3 玉帝传美猴王上天 827

47.4 Java语言内的例子:AWT的事件处理 828

47.5 一个例子:创世纪系统 828

47.6 一个例子:AudioPlayer系统 833

47.7 增加宏命令功能 839

47.8 模式的实现 841

47.9 在什么情况下应当使用命令模式 842

47.11 命令模式与其他模式的关系 843

47.10 使用命令模式的优点和缺点 843

第48章 专题:Swing库中的命令撤销和恢复 853

48.1 在视窗系统中使用命令模式 853

48.2 Swing的基本撤销功能 853

48.3 一休论禅的文字框 861

第49章 备忘录(Memento)模式 869

49.1 备忘录模式的结构 869

49.2 备忘录模式的白箱实现 870

49.3 双重接口及其在Java语言中的实现 875

49.4 备忘录模式的黑箱实现 878

49.5 负责人角色的增强 883

49.6 备忘录模式与多重检查点 884

49.7 “自述历史”模式 890

49.8 “假如”协议模式 894

49.9 备忘录模式与其他模式的关系 895

49.10 备忘录模式的应用 896

49.11 使用备忘录模式的优点和缺点 898

49.12 观世音甘泉活树的故事 899

第50章 状态(State)模式 907

50.1 引言 907

50.2 状态模式的结构 907

50.3 曾侯乙编钟的描述 909

50.4 状态模式的效果 910

50.5 在什么情况下使用状态模式 911

50.6 关于模式实现的讨论 911

50.7 一个状态模式的应用例子:TCP 912

50.8 状态模式在绘图软件中的应用 914

50.9 用户登录子系统 915

50.10 状态模式与策略模式的区别 921

第51章 专题:崂山道士与状态模式 923

51.1 有状态的墙 923

51.2 异常逻辑 923

51.3 从代码重构的角度考察 924

第52章 专题:单分派和多分派 929

52.1 分派的概念 929

52.2 双重分派 933

52.3 未来的Java语言 940

第53章 访问者(Visitor)模式 945

53.1 引言 945

53.2 访问者模式的结构 947

53.3 系统的时序图 953

53.4 在什么情况下应当使用访问者模式 954

53.5 使用访问者模式的优点和缺点 955

53.6 访问者模式的实现 956

53.7 电脑专卖系统:问题与对象 960

53.8 电脑专卖系统的访问者模式设计 962

53.9 与访问者模式有关的模式 976

第54章 解释器(Interpreter)模式 979

54.1 引言 979

54.2 解释器模式的结构 980

54.3 一个示意性的实现 981

54.4 有关模式 991

55.1 引言 993

第55章 调停者(Mediator)模式 993

55.2 调停者模式的结构 996

55.3 调停者模式的实现 1001

55.4 迪米特法则(LoD) 1002

55.5 调停者模式的优点和缺点 1002

55.6 调停者模式的使用条件 1003

55.7 与调停者模式有关的模式 1004

附录A 设计模式一览表 1007

A.1 创建模式 1007

A.2 结构模式 1009

A.3 行为模式 1011

附录B UML图标及其Java实现一览表 1015

附录C 中英术语对照表 1017

相关图书
作者其它书籍
返回顶部