eBOOK

Size: px
Start display at page:

Download "eBOOK"

Transcription

1 设计模式可 复用面向对 象软件基础

2 序 言 所有结构良好的面向对象软件体系结构中都包含了许多模式 实际上, 当我评估一个面向对象系统的质量时, 所使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共协同关系 在系统开发阶段强调这种机制的优势在于, 它能使所生成的系统体系结构更加精巧 简洁和易于理解, 其程度远远超过了未使用模式的体系结构 模式在构造复杂系统时的重要性早已在其他领域中被认可 特别地,Christopher Alexander 和他的同事们可能最先将模式语言 (pattern language) 应用于城市建筑领域, 他的思想和其他人的贡献已经根植于面向对象软件界 简而言之, 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径 在本书中,Erich Gamma Richard Helm Ralph Johnson 和 John Vlissides 介绍了设计模式的原理, 并且对这些设计模式进行了分类描述 因此, 该书做出了两个重要的贡献 : 首先, 它展示了模式在建造复杂系统过程中所处的角色 ; 其次, 它为如何引用一组精心设计的模式提供了一个实用方法, 以帮助实际开发者针对特定应用问题使用适当的模式进行设计 我曾荣幸地有机会与本书的部分作者一同进行体系结构设计工作, 从他们身上我学到了许多东西, 并相信通过阅读该书你同样也会受益匪浅 Rational 软件公司首席科学家 Grady Booch

3 本书并不是一本介绍面向对象技术或设计的书, 目前已有不少好书介绍面向对象技术或设计 本书假设你至少已经比较熟悉一种面向对象编程语言, 并且有一定的面向对象设计经验 当我们提及 类型 和 多态, 或 接口 继承与 实现 继承的关系时, 你应该对这些概念了然于胸, 而不必迫不及待地翻阅手头的字典 另外, 这也不是一篇高级专题技术论文, 而是一本关于设计模式的书, 它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案 设计模式捕获了随时间进化与发展的问题的求解方法, 因此它们并不是人们从一开始就采用的设计方案 它们反映了不为人知的重新设计和重新编码的成果, 而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的艰苦努力 设计模式捕获了这些解决方案, 并用简洁易用的方式表达出来 设计模式并不要求使用独特的语言特性, 也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧 所有的模式均可以用标准的面向对象语言实现, 这也许有时会比特殊的解法多费一些功夫, 但是为了增加软件的灵活性和可复用性, 多做些工作是值得的 一旦你理解了设计模式并且有了一种 Aha! ( 而不是 Huh? ) 的应用经验和体验后, 你将用一种非同寻常的方式思考面向对象设计 你将拥有一种深刻的洞察力, 以帮助你设计出更加灵活的 模块化的 可复用的和易理解的软件 这也是你为何着迷于面向对象技术的源动力, 不是吗? 当然还有一些提示和鼓励 : 第一次阅读此书时你可能不会完全理解它, 但不必着急, 我们在起初编写这本书时也没有完全理解它们! 请记住, 这不是一本读完一遍就可以束之高阁的书 我们希望你在软件设计过程中反复参阅此书, 以获取设计灵感 我们并不认为这组设计模式是完整的和一成不变的, 它只是我们目前对设计的思考的记录 因此我们欢迎广大读者的批评与指正, 无论从书中采用的实例 参考, 还是我们遗漏的已知应用, 或应该包含的设计模式等方面 你可以通过 Addison-Wesley 写信给我们, 或发送电子邮件到 : design-patterns@cs.uiuc.edu 你还可以发送邮件 send design pattern source 到 design-patterns-source@cs.uiuc.edu 获取书中的示例代码部分的源代码 另外我们有一个专门的网页报道最新的消息与更新 : E.G. 于加州 Mountain View;R.H. 于蒙特利尔 R.J. 于伊利诺 Urbana;J.V. 于纽约 Hawthorne 1994 年 8 月

4 读者指南 本书设计实例从面向对象的设计中精选出 23 个设计模式, 总结了面向对象设计中最有价值的经验, 并且用简洁可复用的形式表达出来 本书分类描述了一组设计良好, 表达清楚的软件设计模式, 这些模式在实用环境下有特别有用

5 目 录 序言 前言 读者指南 第 1 章 引言 什么是设计模式 Smalltalk MVC 中的设计模式 描述设计模式 设计模式的编目 组织编目 设计模式怎样解决设计问题 寻找合适的对象 决定对象的粒度 指定对象接口 描述对象的实现 运用复用机制 关联运行时刻和编译时刻的结构 设计应支持变化 怎样选择设计模式 怎样使用设计模式 20 第 2 章 实例研究 : 设计一个文档编辑器 设计问题 文档结构 递归组合 图元 25

6 2.2.3 组合模式 格式化 封装格式化算法 Compositor 和 Composition 策略模式 修饰用户界面 透明围栏 Monoglyph Decorator 模式 支持多种视感标准 对象创建的抽象 工厂类和产品类 Abstract Factory 模式 支持多种窗口系统 我们是否可以使用 Abstract Factory 模式 封装实现依赖关系 Window 和 WindowImp Bridge 模式 用户操作 封装一个请求 Command 类及其子类 撤消和重做 命令历史记录 Command 模式 拼写检查和断字处理 访问分散的信息 封装访问和遍历 Iterator 类及其子类 Iterator 模式 遍历和遍历过程中的动作 封装分析 Visitor 类及其子类 Visitor 模式 小结 53 第 3 章 创建型模式 Abstract Factory( 抽象工厂 ) 对象创建型模式 Builder( 生成器 ) 对象创建型模式 63

7 3.3 Factory Method( 工厂方法 ) 对象创建型模式 Prototype( 原型 ) 对象创建型模式 Singleton( 单件 ) 对象创建型模式 创建型模式的讨论 89 第 4 章 结构型模式 Adapter( 适配器 ) 类对象结构型模式 Bridge( 桥接 ) 对象结构型模式 Composite( 组成 ) 对象结构型模式 Decorator( 装饰 ) 对象结构型模式 FACADE( 外观 ) 对象结构型模式 Flyweight( 享元 ) 对象结构型模式 Proxy( 代理 ) 对象结构型模式 结构型模式的讨论 Adapter 与 Bridge Composite Decorator 与 Proxy 145 第 5 章 行为模式 CHAIN OF RESPONSIBIL ITY( 职责链 ) 对象行为型模式 COMMAND( 命令 ) 对象行为型模式 INTERPRETER( 解释器 ) 类行为型模式 ITERATOR( 迭代器 ) 对象行为型模式 MEDIATOR( 中介者 ) 对象行为型模式 MEMENTO( 备忘录 ) 对象行为型模式 OBSERVER( 观察者 ) 对象行为型模式 STATE( 状态 ) 对象行为型模式 STRATEGY( 策略 ) 对象行为型模式 TEMPLATE METHOD( 模板方法 ) 类行为型模式 VISITOR( 访问者 ) 对象行为型模式 行为模式的讨论 封装变化 对象作为参数 通信应该被封装还是被分布 对发送者和接收者解耦 总结 231 第 6 章 结论 设计模式将带来什么 232

8 6.2 一套通用的设计词汇 书写文档和学习的辅助手段 现有方法的一种补充 重构的目标 本书简史 模式界 Alexander 的模式语言 软件中的模式 邀请参与 临别感想 237 附录 A 词汇表 238 附录 B 图示符号指南 241 附录 C 基本类 244 参考文献 249

9 1 c o m m u n i c a t i n g o b j e c t ( ) ( ) /

10 2 1.1 Christopher Alexander [ A I S ] A l e x a n d e r 1. pattern name 2. (problem) 3. (solution) 4. (consequences) h a s h

11 1 3 C++ S m a l l t a l k Smalltalk C + + ( P a s c a l C A d a ) ( C L O S D y l a n S e l f ) Smalltalk C + + Smalltalk C + + C L O S m u l t i - m e t h o d Vi s i t o r S m a l l t a l k C + + ( Iterator ) 1.2 Smalltalk MVC S m a l l t a l k - 80 / / M o d e l / Vi e w / C o n t r o l l e r ( M V C ) MVC M V C M o d e l Vi e w C o n t r o l l e r M V C M V C M V C /

12 4 O b s e r v e r 5. 7 M V C M V C Vi e w C o m p o s i t e Vi e w C o m p o s i t e Vi e w Vi e w C o m p o s i t e 4. 3 B u t t o n C o m p o s i t e Vi e w M V C M V C C o n t r o l l e r C o n t r o l l e r C o n t r o l l e r C o n t r o l l e Vi e w C o n t r o l l e r C o n t r o l l e r Vi e w C o n t r o l l e Vi e w Vi e w C o n t r o l l e r Vi e w - C o n t r o l l e r S t r a t e g y 5. 9 M V C Factory Method(3.3) D e c o r a t o r ( 4. 4 ) M V C O b s e r v e r C o m p o s i t e S t r a t e g y

13 1 5 O M T [ R B P + 91 ] [ J C J O 92 B O O 94 ] B / C + + S m a l l t a l k A B C ( ) Abstract Factory( 3. 1 )

14 6 A d a p t er ( 4. 1 ) A d a p t e r B r i d g e( 4. 2 ) B u i l d e r( 3. 2 ) Chain of Responsibility( 5. 1 ) C o m m a n d( 5. 2 ) C o m p o s i t e( 4. 3 ) - C o m p o s i t e D e c o r a t o r( 4. 4 ) D e c o r a t o r F a c a d e( 4. 5 ) F a c a d e Factory Method( 3. 3 ) Factory Method F l y w e i g h t( 4. 6 ) I n t e r p r e t e r( 5. 3 ),, I t e r a t o r( 5. 4 ), M e d i a t o r( 5. 5 ) M e m e n t o( 5. 6 ) O b s e r v e r( 5. 7 ),, P r o t o t y p e( 3. 4 ) P r o x y( 4. 7 ) S i n g l e t o n( 3. 5 ) S t a t e( 5. 8 ) S t r a t e g y (5. 9 ),, Template Method( ) Template Method

15 1 7 Vi s i t o r( ) Factory Method(3.3) A d a p t e r ( ) ( 4. 1 ) I n t e r p r e t e r ( 5. 3 ) Template Method(5.10) Abstract Factory(3.1) A d a p t e r ( )( 4. 1 ) Chain of Responsibility(5.1) B u i l d e r ( 3. 2 ) B r i d g e ( 4. 2 ) C o m m a n d ( 5. 2 ) P r o t o t y p e ( 3. 4 ) C o m p o s i t e ( 4. 3 ) I t e r a t o r ( 5. 4 ) S i n g l e t o n ( 3. 5 ) D e c o r a t o r ( 4. 4 ) M e d i a t o r ( 5. 5 ) F a c a d e ( 4. 5 ) M e m e n t o ( 5. 6 ) F l y w e i g h t ( 4. 6 ) O b s e r v e r ( 5. 7 ) P r o x y ( 4. 7 ) S t a t e ( 5. 8 ) S t r a t e g y ( 5. 9 ) Vi s i t o r ( ) ( 1-1 ) C r e a t i o n a l ( S t r u c t u r a l ) ( B e h a v i o r a l ) C o m p o s i t e I t e r a t o r Vi s i t o r P r o t o t y p e A b s t r a c t F a c t o r y C o m p o s i t e D e c o r a t o r 1-1

16 ( )

17 1 9 C o m p o s i t e ( 4. 3 ) S t r a t e g y ( 5. 9 ) S t a t e ( 5. 8 ) F a c a d e ( 4. 5 ) F l y w e i g h t ( 4. 6 ) Abstract Factory(3.1) B u i l d e r ( 3. 2 ) Vi s i t o r ( ) C o m m a n d ( 5. 2 ) ( s i g n a t u r e ) ( i n t e r f a c e (type) Wi n d o w Wi n d o w ( s u b t y p e ) ( s u p e r t y p e )

18 10 (dynamic binding) ( p o l y m o r p h i s m ) M e m e n t o ( 5. 6 ) M e m e n t o m e m e n t m e m e n t o D e c o r a t o r ( 4. 4 ) P r o x y ( 4. 7 ) D e c o r a t o r P r o x y Vi s i t o r ( ) Vi s i t o r v i s i t o r O M T ( ) (class inheritance) ( s u b c l a s s )

19 1 1 1 (parent class) (abstract class) (abstract operation) (concrete class) ( o v e r r i d e ) (mixin class) 1.

20 12 C + + E i ff e l S m a l l t a l k ( ) ( ) C + + E i ff e l C + + ( ) C + + S m a l l t a l k S m a l l t a l k ( [ C o o 92 ]) C + + Chain of Responsibility(5.1) C o m p o s i t e ( 4. 3 ) C o m p o s i t e C o m m a n d ( 5. 2 ) O b s e r v e r ( 5. 7 ) S t a t e ( 5. 8 ) S t r a t e g y ( 5. 9 ) 2. ( ) 1) 2) ( )

21 1 1 3 (Abstract Factory(3.1) B u i l d e r ( 3. 2 ) Factory Method(3.3) P r o t o t y p e ( 3. 4 ) S i n g l e t o n ( 3. 5 ) ) (object composition) (white-box reuse) (black-box reuse) [ S n y 86 ] ( )

22 14 ( ) 2. d e l e g a t i o n [ L i e 86, J Z 91 ] d e l e g a t e C + + t h i s S m a l l t a l k s e l f A r e a r e c t a n g l e S t a t e ( 5. 8 ) S t r a t e g y ( 5. 9 ) Vi s i t o r ( ) S t a t e S t a t e S t r a t e g y Vi s i t o r Vi s i t o M e d i a t o r ( 5. 5 )

23 1 1 5 M e d i a t o r Chain of Responsibility(5.1) B r i d g e ( 4. 2 ) 3. ( ) (parameterized type) ( g e n e r i c )( A d a E i ff e l ) ( t e m p l a t e s )( C + + ) I n t e g e r I n t e g e S t r i n g S t r i n g 1) ( Template Method(5.10) 2 ) ( S t r a t e g y ( 5. 9 )) 3) C + + A d a C + + S m a l l t a l k ( a g g r e g a t i o n ) ( a c q u a i n t a n c e )

24 16 S m a l l t a l k C + + ( ) C o m p o s i t e ( 4. 3 ) D e c o r a t o r ( 4. 4 ) O b s e r v e r ( 5. 7 Chain of R e s p o n s i b i l i t y ( 5. 1 ) ) Abstract Factory(3.1) Factory Method(3.3) P r o t o t y p e ( 3. 4 ) 2) Chain of Resposibility(5.1) C o m m a n d ( 5. 2 ) 3) ( A P I )

25 1 1 7 Abstract Factory(3.1) B r i d g e ( 4. 2 ) 4) Abstract Factory(3.1) B r i d g e ( 4. 2 ) M e m e n t o ( 5. 6 ) P r o x y ( 4. 7 ) 5) B u i l d e r ( 3. 2 ) I t e r a t o r ( 5. 4 ) S t r a t e g y ( 5. 9 ) Template Method(5.10) Vi s i t o r ( ) 6) Abstract Factory(3.1) C o m m a n d ( 5. 2 ) F a c a d e ( 4. 5 ) M e d i a t o r ( 5. 5 ) Observer(5.7) Chain of Responsibility(5.1) 7) ( ) B r i d g e ( 4. 2 ) Chain of Responsibility(5.1) C o m p o s i t e ( 4. 3 ) D e c o r a t o r ( 4. 4 ) O b s e r v e r ( 5. 7 ) S t r a t e g y ( 5. 9 ) 8) ( ) A d a p t e r ( 4. 1 ) D e c o r a t o r ( 4. 4 ) Vi s i t o r ( ) 1. (Application Program)

26 18 2. ( To o l k i t ) C + + I / O 3. ( F r a m e w o r k ) [ D e u 89, J F 88 ] C A D [ V L 9 0, J o h 9 2 ] [ J M L 92 ] [ B E 93 (inversion of control) ( )

27 1 1 9 [ B J 94 ] 1) 2) 3) ( ) ( i n t e n t )

28 Abstract Factory(3.1) B u i l d e r ( 3. 2 ) Factory Method(3.3) P r o t o t y p e ( 3. 4 ) S i n g l e t o n ( 3. 5 ) A d a p t e r ( 4. 1 ) B r i d g e ( 4. 2 ) C o m p o s i t e ( 4. 3 ) D e c o r a t o r ( 4. 4 ) F a c a d e ( 4. 5 ) F l y w e i g h t ( 4. 6 ) P r o x y ( 4. 7 ) Chain of Responsibility(5.1) C o m m a n d ( 5. 2 ) I n t e r p r e t e r ( 5. 3 ) I t e r a t o r ( 5. 4 ) M e d i a t o r ( 5. 5 ) M e m e n t o ( 5. 6 ) O b s e r v e r ( 5. 7 ) S t a t e ( 5. 8 ) S t r a t e g y ( 5. 9 ) Template Method(5.10) Vi s i t o r ( ) 1.8 1) 2 ) 3 ) 4 )

29 1 2 1 S t r a t e g y S i m p l e L a y o u t S t r a t e g y Te X L a y o u t S t r a t e g y 5) 6) C r e a t e - F a c t o r y 7) / 1-2

30 2 L e x i W Y S I W Y G L e x i L e x i 2-1 Lexi L e x i C a l d e r D o c [ C L 92 ]

31 L e x i 1) L e x i 2) L e x i 3) L e x i W Y S I W Y G L e x i 4 ) ( l o o k - a n d - f e e l )L e x i M o t i f Presentation Manager(PM) 5 ) L e x i 6 ) L e x i ( u n d o ) 7 ) L e x i 2.2 L e x i L e x i L e x i

32 24 L e x i (Recursive Composition) L e x i

33 2 25 L e x i L e x i 2-3 C G l y p h ) 2-4 G l y p h 2-4 Glyph C a l d e r Gl y p h [ C L 90 ] C a l d e r [ C a l 93 ] C a l d e r C a l d e r F l y w e i g h t ( 4. 6 )

34 C + + G l y p h 2-1 G l y p h R e s p o n s i b i l i t y O p e r a t i o n s A p p e a r a n c e Virtual Void Draw (Wi n d o w * ) hit detection S t r u c t u r e Virtual Void Bounds (Rect&) Virtual bool Intersects (Const Point&) Virtual Void Insert (Glyph*, int) Virtual Void Remove (Glyph*) Virtual Glyph* Child (int) Virtual Glyph* Parent() 1 ) 2 ) 3 G l y p h D r a w D r a w Wi n d o w Wi n d o w G l y p h R e c t a n g l e D r a w void Rectangle::Draw (Window* w) { w->drawrect(_x0, _y0, _x1, _y1); } _ x 0 _ y 0 _ x 1 _ y 1 R e c t a n g l e D r a w R e c t Wi n d o w ( 2-2 ) B o u n d s G l y p h I n t e r s e c t s L e x i R e c t a n g l e I n s e r t I n d e x R e m o v e C h i l d I n d e x ( ) C h i l d D r a w P a r e n t L e x i P a r e n t I n d e x 2. 8

35 C o m p o s i t e ( 4. 3 ) 2.3 L e x i L e x i ( f o r m a t t i n g ) ( l i n e b r e a k i n g ) L e x i G l y p h L e x i G l y p h Compositor Composition C o m p o s i t o r 2-2 L e x i

36 28 c o m p o s i t o r C o m p o s i t i o n C o m p o s i t i o n C o m p o s i t o r C o m p o s i t o r C o m p o s e 2-5 C o m p o s i t i o n C o m p o s i t o r 2-2 C o m p o s i t o r void SetComposition (Composition*) virtual void Compose() 2-5 Composition Compositor C o m p o s i t i o n C o m p o s i t i o n C o m p o s i t i o n C o m p o s i t o r C o m p o s e C o m p o s i t o r C o m p o s i t i o n 2-6 C o m p o s i t o r 2-6 Compositor C o m p o s i t o r 2. 8 G l y p h

37 2 29 C o m p o s i t o r S i m p l e C o m p o s i t o Te X C o m p o s i t o r T E X [ K n u 84 ] C o m p o s i t o r- C o m p o s i t i o n C o m p o s i t o r G l y p h C o m p o s i t i o n S e t C o m p o s i t o r S t r a t e g y ( 5. 9 ) S t r a t e g y C o m p o s i t o r S t r a t e g y C o m p o s i t i o n C o m p o s i t o r S t r a t e g y S t r a t e g y S t r a t e g y G l y p h C o m p o s i t o r C o m p o s i t o r C o m p o s i t i o n 2.4 L e x i C o m p o s i t i o n B o r d e r e d C o m p o s i t i o n C o m p o s i t i o n S c r o l l a b l e C o m p o s i t i o n B o r d e r e d S c r o l l a b l e C o m p o s i t i o n B o r d e r G l y p h B o r d e r

38 30 G l y p h B o r d e r B o r d e r B o r d e G l y p h B o r d e r G l y p h B o r d e r G l y p h ( Transparent Enclosure) 1 2 ( ) MonoGlyph G l y p h M o n o G l y p h B o r d e r 2-7M o n o G l y p h 2-7 MonoGlyph M o n o G l y p h M o n o G l y p D r a w M o n o G l y p h B o r d e r :: D r a w M o n o G l y p h :: D r a w B o r d e r :: D r a w D r a w B o r d e r

39 2 31 B o r d e r :: D r a w M o n o G l y p h :: D r a 2-7 M o n o G l y p h S c r o l l e r L e x i S c r o l l e r C o m p o s i t i o n B o r d e r S c r o l l e r B o r d e r G l y p h

40 Decorator D e c o r a t o r ( 4. 4 ) D e c o r a t o r D e c o r a t o r L e x i 2.5 L e x i L e x i L e x M o t i f L e x i L e x i L e x i Wi d g e t s 1) G l y p h G l y p S c r o l l B a r G l y p h B u t t o n 2) S c r o l l B a r M o t i f S c r o l l B a r P M S c r o l l B a r M o t i f P M ( P r e s e n t a t i o n M a n a g e r ) L e x i L e x G l y p h ( M o t i f B u t t o n P M B u t t o n M a c B u t t o n ) L e x i C + +

41 2 33 L e x i L e x i M a c M o t i f L e x i C + + M o t i f ScrollBar* sb = new MotifScrollBar; L e x i s b ScollBar* sb = guifactory->createscrollbar(); g u i F a c t o r y M o t i f F a c t o r y C r e a t e S c r o l l B a r S c r o l l B a r M o t i f S c r o l l B a r M o t i f S c r o l l B a r Motif g u i F a c t o r y M o t i f g u i F a c t o r y M o t i f F a c t o r y G U I F a c t o r y G U I F a c t o r y C r e a t e S c r o l l B a r C r e a t e B u t t o n G u i F a c t o r y M o t i f S c r o l l B a r P M B u t t o n 2-9 g u i F a c t o r y 2-9 GUIFactory

42 34 ( F a c t o r y ) ( P r o d u c t ) G U I F a c t o r y g u i F a c t o r y S i n g l e t o n ( 3. 5 ) g u i F a c t o r y g u i F a c t o r y GUIFactory* guifactory = new MotifFactory; M o t i f M o t i f F a c t o r y

43 2 35 g u i F a c t o r y g u i F a c t o r y Abstract Factory F a c t o r y P r o d u c t Abstract Factory (3.1) 2.6 L e x i ( M a c i n t o s h Presentation Manager Wi n d o w s X L e x i Le x Abstract Factory Abstract Factory Abstract Factory S c r o l l B a r M o t i f S c r o l l B a r M a c S c r o l l B a r ( ) Abstract Factory C r e a t e... L e x i Wi n d o w

44 36 Wi n d o w 2-3 Wi n d o w s virtual void Redraw() virtual void Raise() virtual void Lower() virtual void Iconify() virtual void Deiconify() virtual void DrawLine(...) virtual void DrawRect(...) virtual void DrawPolygon(...) virtual void DrawTe x t (...) Wi n d o w 1) Wi n d o w Wi n d o w 2 ) L e x i L e x i Wi n d o w L e x i Wi n d o w L e x i Wi n d o w 2-3 Wi n d o w Wi n d o w A p p l i c a t i o n Wi n d o w I c o n Wi n d o w D i a l o g Wi n d o w L e x i L e x i Wi n d o w

45 2 37 L e x i Wi n d o w Wi n d o w Wi n d o w Window WindowImp Wi n d o w I m p Wi n d o w I m L e x i Wi n d o w I m p Wi n d o w Wi n d o w Wi n d o w I m p

46 38 Wi n d o w I m p Wi n d o w 1. Wi n d o w I m p Wi n d o w I m p 2. 2 Wi n d o w D r a w R e c t R e c t a n g e l :: D r a w D r a w R e c t Wi n d o w I m p _ i m p Wi n d o w Wi n d o w Wi n d o w I m p _ i m p Wi n d o w I m p X Wi n d o w I m p X Wi n d o w I m p D e v i c e R e c t D e v i c e R e c t XDr a w R e c t a n g l e X D e v i c e R e c t ( x 0, y 0 ) P M Wi n d o w I m p Presentation Manager Wi n d o w I m p D e v i c e R e c t

47 2 39 X P M X D e v i c e R e c t P M X Wi n d o w I m p Wi n d o w Wi n d o w 2. Wi n d o w I m p Wi n d o w s Wi n d o w I m p _ i m p Wi n d o w I m p Wi n d o w I m Abstract Factory(3.1) Wi n d o w S y s t e m F a c t o r y Wi n d o w Wi n d o w S y s t e m F a c t o r y Wi n d o w I m p _ i m

48 40 w i n d o w S y s t e m F a c t o r y Wi n d o w S y s t e m F a c t o r y g u i F a c t o r y w i n d o w S y s t e m F a c t o r y Bridge Wi n d o w I m p Wi n d o w Wi n d o w I m p Wi n d o w Wi n d o w I m p Wi n d o w Wi n d o w I m p Wi n d o w Wi n d o w I m p Wi n d o w Wi n d o w I m p L e x i Wi n d o w Wi n d o w I m p B r i d g e ( 4. 2 ) B r i d g e B r i d g e 2.7 L e x i W Y S I W Y G L e x i L e x i L e x i u n d o r e d o

49 M e n u I t e m G l y p h M e n u I t e m M e n u I t e m L e x i M e n u I t e m 1) / 2) 3) M e n u I t e m / c o m m a n d Command C o m m a n d E x e c u t e C o m m a n d E x e c u t e 2-11 C o m m a n d C o m m a n d M e n u I t e m C o m m a n d 2-12 C o m m a n d C o m m a n d E x e c u t e L e x i ( )

50 Command 2-12 MenuItem-Command ( U n d o / r e d o ) C o m m a n d U n e x e c u t e U n e x e c u t e E x e c u t e E x e c u t e E x e c u t e F o n t C o m m a n d E x e c u t e F o n t C o m m a n d U n e x e c u t C o m m a n d R e v e r s i b l e B o o l e a n t r u e f a l s e ( C o m m a n d

51 2 43 H i s t o r y ) C o m m a n d p r e s e n t C o m m a n d U n e x e c u t e Unexecute( ) Un e x e c u t e p r e s e n t C o m m a n d p r e s e n t p r e s e n t C o m m a n d E x e c u t e Execute( ) p r e s e n t p r e s e n t

52 Command L e x i C o m m a n d ( 5. 2 ) L e x i C o m m a n d / / L e x i L e x i G l y p h

53 G l y p h F i r s t N e x t I s D o n e F i r s t Tr a v e r s a l C H I L D R E N P R E O R D E R P O S TO R D E R I N O R D E R N e x t I s D o n e G e t C u r r e n t C h i l d I n s e r t C + + g Tr a v e r s a l T E X T U A L _ P R E O R D E R G l y p h i t e r a t o r s

54 Iterator I t e r a t o r A r r a y - I t e r a t o r L i s t I t e r a t o r P r e o r d e r I t e r a t o P o s t o r d e r I t e r a t o r I t e r a t o 2-13 I t e r a t o r G l y p h C r e a t e I t e r a t o r I t e r a t o r 2-13 Iterator I t e r a t o r F i r s t N e x t I s D o n e L i s t I t e r a t o r F i r s t N e x t I s D o n e C u r r e n t I t e m i t e r a t o r A r r a y I t e r a t o r C r e a t e I t e r a t o r N u l l I t e r a t o r N u l l I t e r a t o r I t e r a t o N u l l I t e r a t o r I s D o n e t r u

55 2 47 G l y p h C r e a t e I t e r a t o r I t e r a t o r G l y p h _ c h i l d r e n C r e a t e I t e r a t o r I t e r a t o r i t e r a t o r I t e r a t o r C r e a t e I t e r a t o r I t e r a t o r P r e o r d e r I t e r a t o r I t e r a t o r C u r r e n t I t e m I t e r a t o r C u r r e n t I t e m N e x t I t e r a t o r I t e r a t o N e x t I t e r a t o r N e x t I t e r a t o r I s D o n e t r u e N e x t I t e r a t o r I t e r a t o r P r e o r d e r I t e r a t o r I t e r a r o r G l y p h

56 48 I t e r a t o r P r e o r d e r I t e r a t o r C + + P r e o r d e r I t e r a t o r Iterator I t e r a t o r ( 5. 4 ) I t e r a t o r I t e r a t i o n I t e r a t o r I t e r a t o r I t e r a t o r G l y p h G l y p h G l y p h G l y p h G l y p h G l y p h G l y p 2.8.6

57 2 49 I t e r a t o r I t e r a t o r S p e l l i n g C h e c k e r ( ) G l y p h G l y p h void CheckMe (SpellingChecker&) G l y p h C h e c k M e

58 50 G l y p h S u b c l a s s C h e c k M e G l y p h S p e l l i n g C h e c k e r G l y p h C h e c k G l y p h S u b c l a s s S p e l l i n g C h e c k e r C h a r a c t e r G e t C h a r C o d e C h e c k C h a r a c t e r _ C u r r e n t Wo r d I s M i s s p e l l e d _ C u r r e n t Wo r d I s M i s s p e l l e d L e x i S p e l l i n g C h e c k e r S t r a t e g y ( 2. 3 )

59 2 51 C h e c k C h a r a c t e r _ C u r r e n t Wo r d G e t M i s s p e l l i n g s C h e c k M e S p e l l i n g C h e c k e r C h a r a c t e r S p e l l i n g C h e c k e r G l y p h C h e c k M e ( S p e l l i n g C h e c k e r &) C h e c k M e ( S p e l l i n g C h e c k e r &) Visitor v i s i t o r Vi s i t o r

60 52 S p e l l i n g C h e c k i n g Vi s i t o r H y p h e n a t i o n Vi s i t o r S p e l l i n g C h e c k i n g Vi s i t o r S p e l l i n g C h e c k e r C h e c k C h a r a c t e r Vi s i t C h a r a c t e r C h e c k M e A c c e p t Vi s i t o r & Vi s i t o r G l y p h H y p h e n a t i o n Vi s t i t o r H y p h e n a t i o n Vi s i t o r Vi s i t C h a r a c t e r D i s c r e t i o n a r y D i s c r e t i o n a r y G l y p h D i s c r e t i o n a r y D i s c r e t i o n a r y D i s c r e t i o n a r y D i s c r e t i o n a r D i s c r e t i o n a r y D i s c r e t i o n a r y D i s c r e t i o n a r y D i s c r e t i o n a r Visitor Vi s i t o r Vi s i t o r Vi s i t o r

61 2 53 Vi s i t o r Vi s i t... F o o G l y p h Vi s i t o r Vi s i t F o o L e x i Vi s i t o r 2.9 L e x i 1) Composite ) Strategy ) Decorator ) Abstract Factory ) Bridge ) Command ) Iterator ) Vi s i t o r L e x i C o m p o s i t e S t r a t e g y D e c o r a t o r C o m m a n d L e x i L e x i

62 3 h a r d - c o d i n g P r o t o t y p e 3. 4 Abstract Factory 3. 1 B u i l d e r 3. 2 P r o t o t y p e 3. 4 S i n g l e t o n 3. 5 R o o m D o o r Wa l l C + + D i r e c t i o n enum Direction {North, South, East, West}; S m a l l t a l k M a p S i t e M a p S i t E n t e r

63 3 55 E n t e r M a p S i t e E n t e r E n t e E n t e r R o o m M a p S i t e M a p S i t e R o o m M a p S i t e

64 56 M a z e R o o m N o M a z e R o o m N o h a s h M a z e G a m e R o o m

65 3 57 D o o r N e e d i n g S p e l l E n c h a n t e d R o o m C r e a t e M a z e C r e a t e M a z e M a z e G a m e Factory Method 3. 3 C r e a t e M a z e Abstract Factory 3. 1 C r e a t e M a z e B u i l d e r 3. 2 C r e a t e M a z e P r o t o t y p e 3. 4 S i n g l e t o n 3. 5 S i n g l e t o n 3.1 ABSTRACT FACTORY K i t 3. l o o k - a n d - f e e l M o t i f Presentation Manager Wi d g e t F a c t o r y Wi d g e t F a c t o r y

66 58 Wi d g e t F a c t o r y M o t i f Wi d g e t F a c t o r y C r e a t e S c r o l l B a r M o t i f P M Wi d g e t F a c t o r y Presentation Manager Wi d g e t F a c t o r y Wi d g e t F a c t o r y M o t i f M o t i M o t i f M o t i f Wi d g e t F a c t o r y 4. Abstract Factory A b s t r a c t F a c t o r y ( Wi d g e t F a c t o r y )

67 3 59 C o n c r e t e F a c t o r y ( M o t i f Wi d g e t F a c t o r y P M Wi d g e t F a c t o r y ) A b s t r a c t P r o d u c t ( Wi n d o w s S c r o l l B a r ) C o n c r e t e P r o d u c t ( M o t i f Wi n d o w M o t i f S c r o l l B a r ) A b s t r a c t P r o d u c t C l i e n t A b s t r a c t F a c t o r y A b s t r a c t P r o d u c t 7. C o n c r e t e F a c t r o y AbstractFactory C o n c r e t e F a c t o r 8. A b s t r a c t F a c t o r y 1) Abstract Factory 2) M o t i f Presentation Manager 3) A b s t r a c t F a c t o r y 4) A b s t r a c t F a c t o r y A b s t r a c t F a c t o r y 9. Abstract Factor 1) C o n c r e t e F a c t o r y S i n g l e t o n ) A b s t r a c t F a c t o r y C o n c r e t e P r o d u c t Factory Method 3. 3

68 60 P r o t o t y p e 3. 4 S m a l l t a l k p a r t C a t a l o g m a k e make : partname ^ (partcatalog at : partname) copy addpart : parttemplate named : partname partcatalog at : partname put : parttemplate afactory addpart : aprototype named : #ACMEWidget S m a l l t a l k O b j e c t i v e C S m a l l t a l k p a r t C a t a l o g p a r t C a t a l o m a k e make : partname ^ (partcatalog at : partname) new 3) A b s t r a c t F a c t o r y A b s t r a c t F a c t o r y A b s t r a c t F a c t o r y M a k e C + + S m a l l t a l k C + + Factory Method(3.3) C + + d o w n c a s t C + + d y n a m i c _ c a s t

69 Abstract Factory M a z e F a c t o r y M a z e F a c t o r y C r e a t e M a z e C r e a t e M a z e M a z e F a c t o r y CreateMaze M a z e F a c t o r y E n c h a n t e d M a z e F a c t o r y E n c h a n t e d M a z e F a c t o r y R o o m Wa l l

70 62 R o o m Wa l l R o o m Wi t h A B o m b B o m b e d Wa l l B o m b e d M a z e F a c t o r y M a z e F a c t o r y B o m b e d Wa l l R o o m Wi t h A B o m b B o m b e d M a z e F a c t o r y B o m b e d M a z e F a c t o r y C r e a t e M a z e MazeGame game; BombedMazeFactory factory; g a m e. C r e a t e M a z e ( f a c t o r y ) ; C r e a t e M a z e E n c h a n t e d M a z e F a c t o r y M a z e F a c t o r y Abstract Factory M a z e F a c t o r y A b s t r a c t F a c t o r y C o n c r e t e F a c t o r y Abstract Factory M a z e F a c t o r y M a z e F a c t o r y C r e a t e M a z e S e t S i d e B o m b e d M a z e F a c t o r y B o m b e d Wa l l R o o m Wi t h A B o m b R o o m Wi t h A B o m b B o m b e d Wa l l Wa l l * B o m b e d Wa l l * B o m b e d Wa l l B o m b e d M a z e F a c t o r y S m a l l t a l k Wa l l Wa l l Abstract Factory S m a l l t a l k M a z e F a c t o r y m a k e S m a l l t a l k C r e a t e M a z e

71 3 63 M a z e F a c t o r y p a r t C a t a l o g m a k e : M a z e F a c t o r y C r e a t e M a z e M a z e G a m C r e a t e M a z e F a c t o r y B o m b e d M a z e F a c t o r y E n c h a n t e d M a z e F a c t o r y E n c h a n t e d M a z e F a c t o r y 11. I n t e r Vi e w K i t [ L i n 92 ] A b s t r a c t F a c t o r y Wi d g e t K i t D i a l o g K i t I n t e r Vi e w L a y o u t K i t c o m p o s i t i o n E T + + [ W G M 88 ] Abstract Factory X Wi n d o w s S u n Vi e w Wi n d o w S y s t e m M a k e Wi n d o w M a k e F o n t M a k e C o l o r E T + + Wi n d o w S y s t e m 12. A b s t r a c t F a c t o r y Factory Method 3. 3 P r o t o t y p e S i n g l e t o n BUILDER 1.

72 64 2. RT F Rich Text Format RT F RT F A S C I I RT F RT F Te x t C o n v e r t e r RT F R e a d e r RT F R e a d e r RT F Te x t C o n v e r t e r RT F R e a d e r RT F RT Te x t C o n v e r t e r Te x t C o n v e r t e r Te x t C o n v e r t A S C I I C o n v e r t e r Te X C o n v e r t e r T E X Te x t Wi d g e t C o n v e r t e r RT F B u i l d e r b u i l d e d i r e c t o r B u i l d e r RT F RT F R e a d e r RT F Te x t C o n v e r t e r RT F R e a d e r 3. B u i l d e r 4.

73 B u i l d e r Te x t C o n v e r t e r P r o d u c t C o n c r e t e B u i l d e r A S C I I C o n v e r t e r Te X C o n v e r t e r Te x t Wi d g e t C o n v e r t e r B u i l d e r G e t A S C I I Te x t G e t Te x t Wi d g e t Director RT F R e a d e r B u i l d e r P r o d u c t A S C I I Te x t Te X Te x t Te x t Wi d g e t C o n c r e t e B u i l d e r 6. D i r e c t o r B u i l d e r B u i l d e r D i r e c t o r 7. B u i l d e r

74 66 1 ) B u i l d e r 2) B u i l d e r B u i l d e r C o n c r e t e B u i l d e r D i r e c t o r P r o d u c t RT F RT F S G M L R e a d e r Te x t C o n v e r t e r S G M L A S C I I Te x t Te X Te x t Te x t Wi d g e t 3 ) B u i l d e r B u i l d e r 8. B u i l d e r C o n c r e t e B u i l d e r 1) B u i l d e r RT F M a z e M a z e B u i l d e r 2) RT F A S C I I Te x t Te x t Wi d g e t B u i l d e r 3 ) B u i l d e r C C r e a t e M a z e M a z e B u i l d e r M a z e B u i l d e r

75 G e t M a z e M a z e B u i l d e r M a z e B u i l d e r M a z e B u i l d e r C r e a t e M a z e C r e a t e M a z e M a z e B u i l d e r B u i l d e r M a z e B u i l d e r M a z e B u i l d e C r e a t e C o m p l e x M a z e M a z e B u i l d e r M a z e B u i l d e r S t a n d a r d M a z e B u i l d e r _ c u r r e n t M a z e

76 68 C o m m o n Wa l l S t a n d a r d M a z e B u i l d e r _ c u r r e n t M a z e B u i l d M a z e M a z e G e t M a z B u i l d R o o m S t a n d a r d M a z e B u i l d e r C r e a t e M a z e S t a n d a r d M a z e B u i l d e r S t a n d a r d M a z e B u i l d e r M a z e M a z e M a z e S t a n d a r d M a z e B u i l d e r M a z M a z e B u i l d e r

77 3 69 M a z e B u i l d e r C o u n t i n g M a z e B u i l d e r M a z e B u i l d e r C o u n t i n g M a z e B u i l d e r 10. RT F E T + + [ W G M 88 ] RT F S m a l l t a l k - 80 [ P a r 90 ] P a r s e r D i r e c t o r P r o g r a m N o d e B u i l d e r P a r s e r P r o g r a m N o d e B u i l d e

78 70 C l a s s B u i l d e r C l a s s C l a s D i r e c t o r P r o d u c t B y t e C o d e S t r e a m B y t e C o d e S t r e a m B u i l d e r S m a l l t a l k B y t e C o d e S t r e a m B y t e C o d e S t r e a m Adaptive Communications Environment S e r v i c e C o n f i g u r a t o r [ S S 94 ] L A L R 1 D i r e c t o r 11. Abstract Factory 3. 1 B u i l d e r B u i l d e r Abstract Factory B u i l d e r Abstract Factory C o m p o s i t e 4. 3 B u i l d e r 3.3 FACTORY METHOD 1. Factory Method 2. Virtual Constructor 3. A p p l i c a t i o n D o c u m e n t D r a w i n g A p p l i c a t i o n D r a w i n g D o c u m e n t A p p l i c a t i o n D o c u m e n t O p e n N e w D o c u m e n t A p p l i c a t i o n D o c u m e n t A p p l i c a t i o n D o c u m e n t Factory Method D o c u m e n t A p p l i c a t i o n A p p l i c a t i o n C r e a t e D o c u m e n t D o c u m e n t A p p l i c a t i o n

79 3 71 C r e a t e D o c u m e n t f a c t o r y m e t h o d 4. Factory Method P r o d u c t( D o c u m e n t ) C o n c r e t e P r o d u c t M y D o c u m e n t P r o d u c t C r e a t o r A p p l i c a t i o n P r o d u c t C r e a t o r C o n c r e t e P r o d u c t P r o d u c t C o n c r e t e C r e a t o r M y A p p l i c a t i o n C o n c r e t e P r o d u c t 7. Creator C o n c r e t e P r o d u c t 8.

80 72 P r o d u c t C o n c r e t e P r o d u c t C o n c r e t e P r o d u c t C r e a t o r C r e a t o r C r e a t o r Factory Method 1 ) h o o k Factory Method D o c u m e n t D o c u m e n t C r e a t e F i l e D i a l o g D o c u m e n t 2) C r e a t o r M a n i p u l a t o r M a n i p u l a t o r M a n i p u l a t o r F i g u r e F i g u r e C r e a t e M a n i p u l a t o r F i g u r e M a n i p u l a t o r F i g u r e M a n i p u l a t o r F i g u r e C r e a t e M a n i p u l a t o r M a n i p u l a t o r F i g u r e F i g u r e M a n i p u l a t o r

81 Factory Method 1 ) Factory Method 1 C r e a t o r 2 C r e a t o r C r e a t o r 2 ) P r o d u c t D o c u m e n t A p p l i c a t i o n D o c u m e n t C r e a t e D o c u m e n t Unidraw [VL90] U n i d r a w C r e a t o r C r e a t e U n i d r a w C r e a t e C r e a t e C r e a t e R e a d M y P r o d u c t Yo u r P r o d u c t P r o d u c t C r e a t o r M y C r e a t o r M y P r o d u c t Yo u r P r o d u c t T h e i r P r o d u c t

82 74 C r e a t e M y C r e a t o r :: C r e a t e Y O U R S M I N E T H E I R S M y C r e a t o r 3) c a v e a t S m a l l t a l k C r e a t o r C o n c r e t e C r e a t o r C o n c r e t e P r o d u c t S m a l l t a l k D o c u m e n t A p p l i c a t i o n d o c u m e n t C l a s s D o c u m e n t M y A p p l i c a t i o n M y D o c u m e n t A p p l i c a t i o n M y A p p l i c a t i o n M y D o c u m e n t A p p l i c a t i o n A p p l i c a t i o n A p p l i c a t i o n C + + C r e a t o r C o n c r e t e C r e a t o r 0 l a z y i n i t i a l i z a t i o n 4 ) P r o d u c t C r e a t o r C + + C r e a t o r P r o d u c t

83 3 75 C r e a t o r 5 ) M a c i n t o s h MacApp [App89] C l a s s * DoMakeClass( ) C l a s s P r o d u c t 10. C r e a t e M a z e 3 M a z e G a m e M a z e G a m e C r e a t e M a z e

84 76 M a z e G a m e M a z e G a m B o m b e d M a z e G a m e R o o m Wa l l E n c h a n t e d M a z e G a m e 11. M a c A p p E T + + [ W G M 88 ] U n i d r a w Smalltalk-80 Model/Vi e w / C o n t r o l l e r Class Vi e w d e f a u l t C o n t r o l l e r [ P a r 90 ] Vi e w d e f a u l t C o n t r o l l e r C l a s s d e f a u l t C o n t r o l l e r C l a s s d e f a u l t C o n t r o l l e r S m a l l t a l k - 80 B e h a v i o r p a r s e r C l a s s

85 3 77 S Q L P a r s e r S Q L B e h a v i o r p a r s e r C l a s s Smalltalk Parser S Q L S Q L P a r s e r IONA Te c h n o l o g i e s Orbix ORB [ I O N 94 ] Factory Method P r o x y 4. 7 Factory Method 12. Abstract Factory 3. 1 Abstract Factory Factory Method Template Methods N e w D o c u m e n t P r o t o t y p e s 3. 4 C r e a t o r P r o d u c t I n i t i a l i z e C r e a t o r I n i t i a l i z e Factory Method 3.4 PROTOTYPE G r a p h i c s To o l G r a p h i c To o l G r a p h i c To o l G r a p h i c To o l G r a p h i c To o l G r a p h i c To o l G r a p h i c To o l G r a p h i c G r a p h i c To o l G r a p h i c G r a p h i c G r a p h i c To o l G r a p h i c C l o n e G r a p h i c To o l G r a p h i c G r a p h i c To o l G r a p h i c To o l

86 78 P r o t o t y p e G r a p h i c To o l M u s i c a l N o t e 3. P r o t o t y p e P r o t o t y p e G r a p h i c C o n c r e t e P r o t o t y p e S t a ff W h o l e N o t e H a l f N o t e C l i e n t G r a p h i c To o l

87 P r o t o t y p e Abstract Factory 3. 1 B u i l d e r 3. 2 P r o t o t y p e 1 ) P r o t o t y p e 2 ) P r o t o t y p e G r a p h i c To o l 3) P r o t o t y p e C l o n e deep copy 4 ) Factory Method 3. 3 C r e a t o r P r o t o t y p e C r e a t o r C + + S m a l l t a l k Objective C 5) C + + P r o t o t y p e E T + + [ W G M 8 8 ] P r o t o t y p e P r o t o t y p e C l o n e C l o n e 8. C o m p o s i t e 4. 3 D e c o r a t o r 4. 4

88 80 C + + P r o t o t y p e S m a l l t a l k Objective C P r o t o t y p e P r o t o t y p e S e l f [ U S 87 ] 1 ) prototype manager associative store 2 ) P r o t o t y p e C l o n S m a l l t a l k c o p y O b j e c t C + + [ G R 83 ] S m a l l t a l k C + + S a v e L o a d C l o n e S a v e L o a d 3) C l o n e C l o n e I n i t i a l i z e C l o n e I n i t i a l i z e 9. M a z e F a c t o r y 3. 1 M a z e P r o t o t y p e F a c t o r y

89 3 81 M a z e P r o t o t y p e F a c t o r y M a z e F a c t o r M a k e Wa l l M a k e D o o r M a z e P r o t o t y p e F a c t o r y M a z e P r o t o t y p e F a c t o r y B o m b e d D o o r R o o m Wi t h A B o m b Wa l l C l o n e

90 82 D o o r I n i t i a l i z e D o o r 3 B o m b e d Wa l l C l o n e B o m b e d Wa l l :: C l o n e Wa l l * B o m b e d Wa l l * C l o n e C l o n e S m a l l t a l k O b j e c t c o p y M a p S i t e

91 3 83 M a z e F a c t o r y # r o o m M a z e F a c t o r y m a k e : M a z e F a c t o r y C r e a t e M a z e o n : 10. P r o t o t y p e Ivan Sutherland S k e t c h p a d [ S u t 63 ] T h i n g L a b [ B o r 81 ] G o l d b e rg R o b s o n [ G R 83 ] C o p l i e n [ C o p 92 ] C + + P r o t o t y p e e t g d b E T + + l i n e - o r i e n t e d p o i n t - a n d - c l i c k D e b u g g e r A d a p t o r G d b A d a p t o r e t g d b G N U g d b S u n D b x A d a p t o r e t g d b S u n d b x e t g d b D e b u g g e r A d a p t o r D e b u g g e r A d a p t o r e t g d b Mode Composer interaction technique library [ S h a 90 ] Mode Composer P r o t o t y p e Mode Composer U n i d r a w [ V L 90 ] 11.

92 84 P r o t o t y p e Abstract Factory 3. 1 Abstract Factory C o m p o s i t e 4. 3 D e c o r a t o r 4. 4 P r o t o t y p e 3.5 SINGLETON printer spooler A / D S i n g l e t o n 3. S i n g l e t o n S i n g l e t o n I n s t a n c e I n s t a n c S m a l l t a l k C S i n g l e t o n I n s t a n c e S i n g l e t o n 7. S i n g l e t o n 1) S i n g l e t o n

93 3 85 2) S i n g l e t o n 3) S i n g l e t o n 4) S i n g l e t o n S i n g l e t o n 5) C + + S m a l l t a l k C S i n g l e t o n 1) S i n g l e t o n C + + S i n g l e t o n I n s t a n c e S i n g l e t o n _ i n s t a n c e Singleton I n s t a n c e _ i n s t a n c 0 I n s t a n c e 0 I n s t a n c e l a z y S i n g l e t o n _ i n s t a n c e S i n g l e t o n I n s t a n c e S i n g l e t o n

94 86 C + + a) b) c) C++ translation unit [ E S 90 ] / S m a l l t a l k S i n g l e t o n n e w S i n g l e t o n S o l e I n s t a n c e 2) S i n g l e t o n S i n g l e t o n I n s t a n c e S i n g l e t o n I n s t a n c e M a z e F a c t o r y C + + h a r d - w i r e S i n g l e t o n registry of singleton S i n g l e t o n I n s t a n c e S i n g l e t o n I n s t a n c e I n s t a n c e S i n g l e t o n S i n g l e t o

95 3 87 R e g i s t e r S i n g l e t o n N a m e S i n g l e t o n P a i r N a m e S i n g l e t o n P a i r L o o k u p S i n g l e t o n M y S i n g l e t o S i n g l e t o n C + + M y S i n g l e t o n M y S i n g l e t o n static MySingleton thesingleton; S i n g l e t o n S i n g l e t o n 9. M a z e F a c t o r y 3 M a z e F a c t o r y B o m b e d Wa l l Wa l M a z e S i n g l e t o n M a z e F a c t o r y M a z e F a c t o r y I n s t a n c e _ i n s t a n c C + + S i n g l e t o n

96 88 M a z e F a c t o r y M a z e F a c t o r y I n s t a n c e M a z e F a c t o r y M a z e F a c t o r y I n s t a n c e 10. S m a l l t a l k - 80 [ P a r 90 ] S i n g l e t o n ChangeSet current m e t a c l a s s I n t e r Vi e w s [ L C I + 92 ] S i n g l e t o n S e s s i o n Wi d g e t K i t S e s s i o n Wi d g e t K i t Abstract Factory 3. 1 Wi d g e t K i t :: i n s t a n c e Wi d g e t K i t S e s s i o n S e s s i o n

97 3 89 S e s s i o n 11. S i n g l e t o n Abstract Factory 3. 1B u i l d e r 3. 2 P r o t o t y p e Factory Method 3. 3 c a s c a d e Abstract Factory 3. 1B u i l d e r 3. 2 P r o t o t y p e 3. 4 Abstract Factory B u i l d e r P r o t o t y p e P r o t o t y p e G r a p h i c To o l Factory Method G r a p h i c G r a p h i c To o l G r a p h i c To o l N e w G r a p h i c G r a p h i c To o l Abstract Factory G r a p h i c s F a c t o r y G r a p h i c C i r c l e F a c t o r y C i r c l e L i n e F a c t o r y L i n e G r a p h i c To o l G r a p h i c P r o t o t y p e G r a p h i c C l o n e G r a p h i c To o l G r a p h i c F a c t o r y M e t h o d G r a p h i c To o l G r a p h i c To o l G r a p h i c To o Abstract Factory G r a p h i c s F a c t o r G r a p h i c s F a c t o r y Abstract Factory Factory Method S m a l l t a l k Objective C G r a p h i c s F a c t o r y P r o t o t y p e G r a p h i c s C l o n e C l o n D u p l i c a t e Factory Method Factory Method Factory

98 90 Abstract Factory P r o t o t y p e B u i l d e r Factory Method Factory Method

99 4 A d a p t e r ( 4. 1 ) ( a d a p t e e a d a p t e e a d a p t e e Composite (4.3). Proxy (4.7) p r o x y P r o x y F l y w e i g h t ( 4. 6 ) F l y w e i g h t F l y w e i g h t F l y w e i g h t F l y w e i g h t F a c a d e ( 4. 5 ) f a c a d e f a c a d e B r i d g e ( 4. 2 ) D e c o r a t o r ( 4. 4 ) D e c o r a t o r D e c o r a t o r D e c o r a t o r D e c o r a t o r D e c o r a t o r

100 ADAPTER 1. A d a p t e r 2. Wr a p p e r 3. S h a p e S h a p e L i n e S h a p e P o l y g o n S h a p e L i n e S h a p e P o l y g o n S h a p e Te x t S h a p e Te x t Vi e w Te x t Vi e w Te x t S h a p e S h a p e Te x t Vi e w S h a p e Te x t Vi e w Te x t Vi e S h a p e Te x t Vi e w Te x t S h a p e Te x t Vi e w S h a p e 1) S h a p e Te x t Vi e w 2) Te x t Vi e w Te x t S h a p e Te x t Vi e w Te x t S h a p e A d a p t e r Te x t S h a p e A d a p t e r

101 4 93 S h a p e B o u n d i n g B o x Te x t Vi e w G e t E x t e n t Te x t S h a p e Te x t Vi e w S h a p e Te x t Vi e w A d a p t e r S h a p e Te x t Vi e w Te x t S h a p e C r e a t e M a n i p u l a t o r M a n i p u l a t o r M a n i p u l a t o r S h a p e M a n i p u l a t o r Te x t M a n i p u l a t o r Te x t S h a p e Te x t S h a p e Te x t M a n i p u l a t o r Te x t Vi e w S h a p e 4. A d a p t e r A d a p t e r Ta r g e t ( S h a p e ) C l i e n t C l i e n t ( D r a w i n g E d i t o r )

102 94 Ta rg e t A d a p t e e ( Te x t Vi e w ) A d a p t e r ( Te x t S h a p e ) A d a p t e e Ta rg e t 7. Client A d a p t e r A d a p t e e 8. A d a p t e r A d a p t e e Ta rg e t A d a p t e r A d a p t e r A d a p t e e A d a p t e r A d a p t e e a d a p t e e A d a p t e r A d a p t e e A d a p t e e A d a p t e r A d a p t e e A d a p t e e A d a p t e A d a p t e r A d a p t e e A d a p t e r 1) Adapter A d a p t e e Ta rg e t A d a p t e r A d a p t e r Ta rg e t A d a p t e e 2) Adapter O b j e c t - Wo r k / S m a l l t a l k [ P a r 90 ] pluggable adapter Tr e e D i s p l a y Tr e e Tr e e D i s p l a y Tr e e G e t S u b d i r e c t o r i e s G e t S u b c l a s s e s Tr e e D i s p l a y Tr e e D i s p l a y 3) A d a p t e e A d a p t e

103 4 95 Unidraw [VL90] Q O C A [ H H M V 92 ] U n i d r a w S t a t e Va r i a b l e Q O C A C o n s t r a i n t Va r i a b l e U n i d r a w Q O C A C o n s t r a i n t Va r i a b l e S t a t e Va r i a b l e Q O C A U n i d r a w S t a t e Va r i a b l e C o n s t r a i n t Va r i a b l e QOCA Unidraw C o n s t r a i n t S t a t e Va r i a b l e C o n s t r a i n t Va r i a b l e S t a t e Va r i a b l e C o n s t r a i n t S t a t e Va r i a b l e 9. A d a p t e r 1) C + + A d a p t e r Ta rg e t A d a p t e e A d a p t e r Ta rg e t A d a p t e e 2) Tr e e D i s p l a y Adaptee Tr e e D i s p l a y a) Tr e e D i s p l a y A d a p t e e D i r e c t o r y Tr e e D i s p l a y

104 96 D i r e c t o r y Tr e e D i s p l a y D i r e c t o r y B r o w s e r b) Tr e e D i s p l a y Tr e e D i s p l a y D i r e c t o r y B r o w s e r Tr e e D i s p l a y D i r e c t o r y B r o w s e r Tr e e D i s p l a y S m a l l t a l k Objective C Tr e e D i s p l a y N E X T S T E P [ A d d 94 ] C + + Tr e e D i s p l a y Tr e e A c c e s s o r D e l e g a t e D i r e c t o r y B r o w s e r D i r e c t o r y B r o w s e r Tr e e D i s p l a y c) S m a l l t a l k Tr e e D i s p l a y G r a p h i c N o d e Tr e e D i s p l a y 10. S h a p e Te x t Vi e w

105 4 97 S h a p e Te x t Vi e w S h a p e C r e a t e M a n i p u l a t o r M a n i p u l a t o r M a n i p u l a t o r Te x t Vi e w Te x t S h a p e C + + Te x t S h a p e B o u n d i n g B o x Te x t Vi e w S h a p e I s E m p t y C r e a t e M a n i p u l a t o r Te x t Vi e w Te x t S h a p e Te x t M a n i p u l a t o r C r e a t e M a n i p u l a t o r Factory Method

106 98 Te x t S h a p e Te x t Vi e w Te x t S h a p e Te x t Vi e w Te x t Vi e w Te x t Vi e w Te x t S h a p e C r e a t e M a n i p u l a t o r Te x t Vi e w Te x t Vi e w Te x t S h a p e Te x t S h a p e Te x t Vi e w 11. E T + + [ W G M 88 ] E T + + D r a w E T + + D r a w Te x t S h a p e E T + + I n t e r Vi e w 2. 6 s c r o l l b a r s b u t t o n s m e n u s I n t e r a c t o r [ V L 88 ] l i n e c i r c l e p o l y g o n s p l i n e G r a p h i c s I n t e r a c t o r G r a p h i c s

107 4 99 I n t e r Vi e w 2. 6 G r a p h i c B l o c k I n t e r a c t o r G r a p h i c G r a p h i c B l o c k G r a p h i c I n t e r a c t o r G r a p h i c B l o c k G r a p h i c I n t e r a c t o r O b j e c t Wo r k s / S m a l l t a l k [ P a r 90 ] S m a l l t a l k Va l u e M o d e l Va l u e M o d e l v a l u e v a l u e : w i d t h w i d t h : Va l u e M o d e l Va l u e M o d e O b j e c t Wo r k s / S m a l l t a l k Va l u e M o d e l P l u g g a b l e A d a p t o r P l u g g a b l e A d a p t o r Va l u e M o d e l v a l u e v a l u e : P l u g g a b l e A d a p t o r v a l u e v a l u e : P l u g g a b l e A d a p t o r w i d t h w i d t h : O b j e c t Wo r k s / S m a l l t a l k Ta b l e A d a p t o r TableAdaptor N e X T A p p K i t [ A d d 9 4 ] N X B r o w s e r N X B r o w s e r M a y e r Marriage of Convenience [ M e y 88 ] M a y e r F i x e d S t a c k A r r a y S t a c k 12. B r i d g e ( 4. 2 ) B r i d g e B r i d g A d a p t e r D e c o r a t o r ( 4. 4 ) d e c o r a t o r d e c o r a t o r P r o x y ( 4. 7 )

108 BRIDGE H a n d l e / B o d y 3. Wi n d o w X Window System I B M Presentation Manager(PM) Wi n d o w XWi n d o w P M Wi n d o w Wi n d o 1) Wi n d o w Wi n d o w I c o n Wi n d o w Wi n d o w I c o n Wi n d o X I c o n Wi n d o w P M I c o n Wi n d o w Wi n d o w 2) X w i n d o w Wi n d o w X Wi n d o w X Wi n d o w B r i d g e Wi n d o w Wi n d o w I c o n Wi n d o w Tr a n s i e n t Wi n d o w Wi n d o w I m p X w i n d o w I m p X Wi n d o w Wi n d o w Wi n d o w I m p Wi n d o w Wi n d o w I m p

109 B r i d g e B r i d g e C + + C + R u m b a u g h nested generalizations C o p l i e n S t r i n g [ C o p 92 ] S t r i n g R e p 5.

110 Abstraction (Wi n d o w ) I m p l e m e n t o r RefinedAbstraction (IconWi n d o w ) A b s t r a c t i o n Implementor (Wi n d o w I m p ) A b s t r a c t i o n I m p l e m e n t o r A b s t r a c t i o n ConcreteImplementor (XwindowImp, PMWi n d o w I m p ) I m p l e m e n t o r 7. Abstraction c l i e n t I m p l e m e n t o r 8. B r i d g e 1) A b s t r a c t i o n I m p l e m e n t o r A b s t r a c t i o n A b s t r a c t i o n I m p l e m e n t o r 2) A b s t r a c t i o n I m p l e m e n t o r 3 ) I m p l e m e n t o r 9. B r i d g e 1) Implementor I m p l e m e n t o r B r i d g e A b s t r a c t i o n I m p l e m e n t o r C a r o l a n [ C a r 89 ] Cheshire Cat C + + I m p l e m e n t o r 2) I m p l e m e n t o r I m p l e m e n t o r I m p l e m e n t o r A b s t r a c t i o n C o n c r e t e I m p l e m e n t o r

111 4 103 c o l l e c t i o n c o l l e c t i o n c o l l e c t i o n h a s h c o l l e c t i o n c o l l e c t i o n c o l l e c t i o n Wi n d o w / Wi n d o w I m p f a c t o r y Abstract Factory(3.1) Wi n d o w I m p Wi n d o w Wi n d o w I m p Wi n d o w I m p Abstraction I m p l e m e n t o r 3 ) I m p l e m e n t o rc o p l i e n C + + H a n d l e / B o d y [ C o p 92 ] B o d y H a n d l e 4) C + + [ M a r 9 1 ] p u b l i c A b s t r a c t i o n p r i v a t e C o n c r e t e I m p l e m e n t o r B r i d g e C C + + Wi n d o w / Wi n d w o I m p Wi n d o w

112 104 Wi n d o w Wi n d o w I m p Wi n d o w I m p Wi n d o w A p p l i c a t i o n Wi n d o w D r a w C o n t e n t s Vi e w I c o n Wi n d o w D r a w C o n t e n t s

113 4 105 Window Tr a n s i e n t Wi n d o w P a l e t t e Window I c o n D o c k Wi n d o w I c o n Wi n d o w Wi n d o w Wi n d o w I m p Wi n d o w I m p D r a w R e c t P o i n t Wi n d o w I m p X w i n d o w I m X Wi n d o w Presentation Manager (PM) P M Wi n d o w I m p Wi n d o w I m p X D e v i c e R e c t P M

114 106 Wi n d o w I m p Window G e t Wi n d o w I m p Abstract Factory(3.1) Wi n d o w S y s t e m F a c t o r y : : I n s t a n c e ( ) S i n g l e t o n Wi n d o w 11. Wi n d o w E T + + [ W G M 88 ] E T + + Wi n d o w I m p Wi n d o w P o r t X Wi n d o w P o r t S u n Wi n d o w P o r t Wi n d o w Wi n d o w S y s t e m I m p l e m e n t o r Wi n d o w S y s t e m E T + + Wi n d o w / Wi n d o w P o r t B r i d g e Wi n d o w P o r t Wi n d o w Wi n d o w P o r t I m p l e m e n t o r Wi n d o w Wi n d o w P o r t Coplien[Cop92] S t r o u s t r u p [ S t r 91 ] H a n d l e l i b g + + [ L e a 88 ] S e t L i n k e d S e t H a s h S e t L i n k e d L i s t H a s h Ta b l e S e t L i n k e d L i s t H a s h Ta b l e h a s h L i n k e d S e t H a s h S e t S e t S e t L i n k e d L i s t H a s h Table. I m p l e m e n t o r

115 4 107 N e X T s AppKit[Add94] B r i d g e A p p K i t A p p K i t N X I m a g e / N X I m a g e R e p N T I m a g e N X I m a g e R e p NXEPSImageRep, NXCachedImageRep N X B i t M a p I m a g e R e p N X I m a g e N X I m a g e R e p N X I m a g e N X I m a g e B r i d g e N X I m a g e N X I m a g e R e p 12. Abstract Factory(3.1) B r i d g e Adapter(4.1) B r i d g e 4.3 COMPOSITE 1. - C o m p o s i t e 2. Te x t L i n e ( C o n t a i n e r ) C o m p o s i t e Composite G r a p h i c D r a w

116 108 L i n e R e c t a n g l e Te x t D r a w P i c t u r e Graphic Picture D r a w D r a w P i c t u r e P i c t u r G r a p h i c P i c t u r e P i c t u r G r a p h i c 3. C o m p o s i t e : - 4. C o m p o s i t e

117 Component (Graphic) C o m p o n e n t ( ) Leaf (Rectangle L i n e Te x t ) Composite (Picture) C o m p o n e n t Client C o m p o n e n t 6. C o m p o n e n t, Composite, / 7. C o m p o s i t e ( ), C o m p o s i t e L e a f C o m p o n e n t C o m p o s i t e 8. C o m p o s i t e 1 ) Chain of Responsibility(5.2) C o m p o n e n t L e a f C o m p o s i t e

118 110 C o m p o s i t e Add R e m o v e 2 ) F l y w e i g h t ( 4. 6 ) ( ) 3) C o m p o n e n tc o m p o s i t e Leaf C o m p o s i t e C o m p o s i t Leaf C o m p o s i t e C o m p o s i t e Leaf C o m p o s i t C o m p o n e n t L e a f C o m p o n e n t C o m p o s i t e C o m p o n e n t C o m p o n e n t C o m p o s i t e L e a f L e a Component, C o m p o n e n t Leaf C o m p o s i t e 4) C o m p o s i t e Add R e m o v e C o m p o s i t e C o m p o s i t e C o m p o n e n t L e a f C o m p o s i t e Leaf C o m p o s i t e C + + Leaf Leaf C o m p o s i t e C o m p o n e n t Composite* GetComposite() C o m p o n e n t

119 4 111 C o m p o s i t e t h i s GetComposite Add R e m o v e C++ d y n a m i c _ c a s t C o m p o s i t e C o m p o n e n t Add R e m o v e C o m p o n e n t : : A d d C o m p o n e n t : : A d d A d d A d R e m o v e ( ) A d d R e m o v e Component :: Remove, A d d 5) Component C o m p o n e n t C o m p o n e n t C o m p o n e n t

120 112 6) C o m p o s i t e G r a p h i c s C o m p o s i t e C o m p o s i t e C o m p o s i t e I t e r a t o r ( 5. 4 ) 7) C o m p o s i t e C o m p o s i t e P i c t u r e P i c t u r e 8) Component C o m p o s i t e C o m p o s i t e L e a f 9) C o m p o s i t e h a s h C o m p o s i t e C o m p o s i t e I n t e r p r e t e r ( 5. 3 ) 9. C o m p o s i t e E q u i p m e n t

1 c o m m u n i c a t i n g o b j e c t ( ) ( ) / 2 1.1 Christopher Alexander [ A I S + 77 10 ] A l e x a n d e r 1. pattern name 2. (problem) 3. (solution) 4. (consequences) h a s h 1 3 C++ S m a l l

More information

epub 32-2

epub 32-2 2 L e x i W Y S I W Y G L e x i 8 2-1 L e x i 2-1 Lexi L e x i C a l d e r D o c [ C L 92 ] 2 23 2.1 L e x i 1) L e x i 2) L e x i 3) L e x i W Y S I W Y G L e x i 4 ) ( l o o k - a n d - f e e l )L e

More information

设计模式_Patterns in Java_.doc

设计模式_Patterns in Java_.doc 1 1: 2:GoF A. Prototype( ) Builder Builder Singleton( ), B. Composite. Jive Decorator Decorator,. Bridge " (,, ), ( ) Flyweight Java,. C. Template Java,. Memento,. Observer Java API Observer 2 Chain of

More information

欢迎访问动力节点官方网站,动力节点java0基础免费学习半个月,java就业班免费学习一个月,满意后再交学费,请稊等,正在为您接入咨询老师

欢迎访问动力节点官方网站,动力节点java0基础免费学习半个月,java就业班免费学习一个月,满意后再交学费,请稊等,正在为您接入咨询老师 JDK 中的设计模式应用实例在 JDK(Java Development Kit) 类库中, 开发人员使用了大量设计模式, 正因为如此, 我们可以在不修改 JDK 源码的前提下开发出自己的应用软件, 本文列出了部分 JDK 中的模式应用实例, 有兴趣的同学可以深入研究, 看看前 Sun 公司的开发人员是如何在实际框架开发中运用设计模式的,Sunny 认为, 研究 JDK 类库中的模式实例也不失为学习如何使用设计模式的一个好方式.

More information

人 物 訪 中 華 技 術 I N T E R V I E W 壹 前 言 當 您 搭 乘 台 鐵 縱 貫 線 南 下 列 車, 於 駛 入 高 雄 岡 山 地 區 時, 映 入 眼 簾 的 是 一 座 佔 地 約 30,000 坪 的 綠 色 巨 型 鋼 構 廠 房 及 碩 大 的 皆 豪 鋼 構

人 物 訪 中 華 技 術 I N T E R V I E W 壹 前 言 當 您 搭 乘 台 鐵 縱 貫 線 南 下 列 車, 於 駛 入 高 雄 岡 山 地 區 時, 映 入 眼 簾 的 是 一 座 佔 地 約 30,000 坪 的 綠 色 巨 型 鋼 構 廠 房 及 碩 大 的 皆 豪 鋼 構 源 自 民 國 66 年 間 財 團 法 人 中 華 顧 問 工 程 司 ( 以 下 簡 稱 中 華 顧 問 ), 入 首 台 HP-000 電 腦, 開 啟 我 國 工 程 顧 問 業 應 用 電 腦 之 先 河, 歷 經 電 腦 主 機 系 統 及 主 從 式 系 統 架 構 等 的 調 整, 目 前 已 進 入 網 際 網 路 化 的 資 訊 系 統 建 構 台 灣 世 曦 工 程 顧 問 股

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

Microsoft Word - 物件導向編程精要.doc

Microsoft Word - 物件導向編程精要.doc Essential Object-Oriented Programming Josh Ko 2007.03.11 object-oriented programming C++ Java OO class object OOP Ruby duck typing complexity abstraction paradigm objects objects model object-oriented

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

ebook70-19

ebook70-19 1 9 S t a r O ff i c e Star Division S t a r O ff i c e h t t p / / w w w. s t a r d i v i s i o n. c o m S t a r O ff i c e O p e n L i n u x O p e n L i n u x StarOffice S t a r O ff i c e S t a r O

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

IoC容器和Dependency Injection模式.doc

IoC容器和Dependency Injection模式.doc IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component

More information

ebook

ebook 26 JBuilder RMI Java Remote Method Invocation R M I J a v a - - J a v a J a v J a v a J a v a J a v a R M I R M I ( m a r s h a l ) ( u n m a r c h a l ) C a ff e i n e J a v a j a v a 2 i i o p J a v

More information

(procedure-oriented)?? 2

(procedure-oriented)?? 2 1 (procedure-oriented)?? 2 (Objected-Oriented) (class)? (method)? 3 : ( 4 ???? 5 OO 1966 Kisten Nygaard Ole-Johan Dahl Simula Simula 爲 6 Smalltalk Alan Kay 1972 PARC Smalltalk Smalltalk 爲 Smalltalk 爲 Smalltalk

More information

JBuilder Weblogic

JBuilder Weblogic JUnit ( bliu76@yeah.net) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC

More information

Microsoft Word - 連啟元.doc

Microsoft Word - 連啟元.doc 中極學刊 第七輯 國立暨南國際大學 中 國 語 文 學 系 2 0 0 8 年 06 月 傳 奇 乎 傳 教 乎 千古奇聞 的編選視域初探 王鐿容 中央大學中文所 摘 要 明末清初商業發展 印刷術的發達 造成文化消費的普及 大眾藝文風氣勃 發 加以心學發展趨盛 思想禁錮鬆動 許多男性文人均曾直接或間接提升女性 地位 商業發達 婦女識字率增加 女性文學的閱讀需求激增 所以出現的一批 寫 給 女 人 的

More information

ebook129-11

ebook129-11 11 TThread Wi n 32 16 Wi n d o w s Wi n 3 32 D e l p h i 11.1 3 Win32 API Wi n 32 C P U C P U 16 Windows 32 Delphi Delphi 1 11.1.1 16 Wi n 32 Windows 3.1 1 2 C P U 1 Windows 3.1 Wi n d o w s 16 Wi n d

More information

Software Engineering 5.

Software Engineering 5. Software Engineering 5. 目录 Contents 5.1 5.2 5.3 Page. 3 软件体系结构包括一组软件部件 软件部件的外部的可见特性及其相互关系, 其中软件外部的可见特性是指软件部件提供的服务 性能 特性 错误处理 共享资源使用等 系统的总体组织结构和全局控制结构 通信 同步和数据访问的协议 设计元素的组成与功能分配 非功能需求 系统的物理部署 备选设计方案的选择

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

epub 63-3

epub 63-3 3 Solaris S o l a r i s S o l a r i s 2 S o l a r i s s h e l l p a s s w d v i l s c a t p g m o r e r m 3.1 3.1.1 c p c p c o p y c p c p cp source-file destination-file s o u r c e - f i l e c p d e

More information

ebook66-24

ebook66-24 2 4 0 C P U 0 C P U hardware exception software exception -- e x c e p t t r y f i n a l l e x c e p t try f i n a l l y e x c e p t t r y - e x c e p t t r y - f i n a l l y 24.1 exception filter t r

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

ebook12-1

ebook12-1 API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P

More information

ebook70-14

ebook70-14 Linux 1 4 1 5 1 6 1 7 1 8 1 9 S t a r O ff i c e 2 0 L i n u x 1 4 O p e n L i n u x O p e n L i n u x C D - R O M O p e n L i n u x C o r e l WordPerfect 8 for Linux S t a r D i v i s i o n S t a r O

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

ebook129-9

ebook129-9 9 : D L L D L L D L L D L L D e l p h i D L L DLL DLL D L L D L L D L L Wi n 32 D L L D L L Wi n d o w s D L L D L L D L D L L 9.1 DLL Wi n d o w s D L L D L L K e r n e l 32. d l l U s e r 32. d l l G

More information

ebook63-10

ebook63-10 10 10.1 10 139 B 10.2 10-1 Engine Component 1 0-1 A B B A * 1..* 10-1 10-2 U M L 140 1..* * * 3 10-2 U M L U M L U M L U M L 10-2 m u l t i - n e t w o r k 10.3 10-3 10-3 E R D U M L P e r s o n 10-4 {

More information

ebook2-24

ebook2-24 2 4 24 24 2 4 We b 24 24 24.1 We b Job Opening We b E x c i t e 24-1 E x c i t e C a r e e r s 290 C a r e e r s, 24-1 w w w. e x c i t e. c o m E x c i t e C a r e e r Excite Careers M o n s t e r. c

More information

Wy159.mps

Wy159.mps 第 章 系 统 开 发 方 法 管 理 信 息 系 统 开 发 的 效 率 质 量 成 本 及 用 户 的 满 意 程 度, 除 了 管 理 技 术 等 因 素 外, 还 与 系 统 开 发 方 法 密 切 相 关 管 理 信 息 系 统 从 产 生 到 现 在 已 经 发 展 了 许 多 开 发 方 法, 这 些 开 发 方 法 各 自 遵 循 一 定 的 基 本 思 想, 适 用 于 一 定 的

More information

Microsoft PowerPoint - 08_OO_CJC.ppt

Microsoft PowerPoint - 08_OO_CJC.ppt C++ 中的 Hello World! C 程序设计语言 第 8 章 OO 与 C++ Java C# 孙志岗 sun@hit.edu.cn http://sunner.cn 兼容 C 语言的 : #include int main() printf("hello,, world!\n"); return 0; 更具 C++ 味道的 : #include int

More information

ebook50-11

ebook50-11 11 Wi n d o w s C A D 53 M F C 54 55 56 57 58 M F C 11.1 53 11-1 11-1 MFC M F C C D C Wi n d o w s Wi n d o w s 4 11 199 1. 1) W M _ PA I N T p W n d C W n d C D C * p D C = p W n d GetDC( ); 2) p W n

More information

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64 BIBLID 1026-5279 (2005) 94:2 p. 127-154 (2005.12) 127 Keywords Digital Library High School Library Library Website Open Source E-mail frank@hchs.hc.edu.tw 128 (2005.12) ( ) 6 0 68 [ 1 ] [2] [3] (1) (2)

More information

ebook215-5

ebook215-5 5 X M L X M L Document Object Model D O M 5.1 We b We b We b W 3 C W3C DOM W3C DOM D O D O M D O M D O D O M H T M L X M L 5.1.1 XML X M L X M L 5-1 X M L 112 XML 5-2 P R O D U C T P l u t o n i u m L

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

2005 ( )... 1 2005... 5 2005... 10 2005... 16 2005... 20 2005... 23 2005 ( )... 30 200 5... 37 2005... 43 2005... 47 2005... 52 2005 ( )... 58 2005... 63 2005 ( )... 68 2005 (WA T)... 73 2005 ( ) 2005

More information

ebook

ebook 3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

ebook43-11

ebook43-11 11 Excel 4 E x c e l Access A c c e s s Access Access / Access 2000 / Paradox S Q L A c c e s s SQL Lotus Org a n i z e r A c c e s s A c c e s s Wo r d Word for Windows O D B C ODBC O ffice A c c e s

More information

Value Chain ~ (E-Business RD / Pre-Sales / Consultant) APS, Advanc

Value Chain ~ (E-Business RD / Pre-Sales / Consultant) APS, Advanc Key @ Value Chain fanchihmin@yahoo.com.tw 1 Key@ValueChain 1994.6 1996.6 2000.6 2000.10 ~ 2004.10 (E- RD / Pre-Sales / Consultant) APS, Advanced Planning & Scheduling CDP, Collaborative Demand Planning

More information

2014年工作思路

2014年工作思路 2016 年 中 共 上 海 市 公 共 卫 生 临 床 中 心 党 委 工 作 计 划 2016 年 是 公 卫 中 心 十 三 五 发 展 规 划 的 开 局 之 年, 公 卫 中 心 党 委 坚 持 以 邓 小 平 理 论 三 个 代 表 重 要 思 想 和 科 学 发 展 观 为 指 导, 全 面 贯 彻 落 实 党 的 十 八 大 和 十 八 届 二 中 三 中 和 四 中 五 中 全 会

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

untitled

untitled ,, : ; ; ; ; ; ;,, : ( ) : : : ( ) : : : 6 1 6 1 1 : ,,,,,,,,, :,,,,,,, ,,,,,,,,,, ;, ;,,,,,,,,, : 1. 2.,,, 3.,,,,,,,, ;,,,,, : 1.,, 2.,, ;,,,, 3.,,,,,, 4.,,, ;,,, ;,,,,,,,,,,,,,, ;,,,,,,,, : 1. :,,,

More information

ebook40-16

ebook40-16 1 6 16.1 Notes N o t e s N o t e s N o t e s N o t e s RT F Notes RT F D o m i n o N o t e s Microsoft Excel Lotus 1-2-3 RT F RT F RT F 16 179 16.2 I n t e r n e t N o t e s 1) N o t e s 2) 3) 16-1 16-1

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

epub 34-1

epub 34-1 1 P C Lisa Stefanik A b b o t s f o r d 2 2 0 20 S n e a k e r n e t 1-1 1-1 5000 Wo r d P e r f e c t 1-2 Windows 95 Windows 98 Windows NT Server Novell NetWa r e 1 3 1-2 20 80 Microsoft Windows NT Novell

More information

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2. 2005-06 p.1 HTML HyperText Mark-up Language 1. HTML Logo, Pascal, C++, Java HTML 2. HTML (tag) 3. HTML 4. HTML 1. HTML 2. 3. FTP HTML HTML html 1. html html html cutehtmleasyhtml 2. wyswyg (What you see

More information

Strings

Strings Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

SL2511 SR Plus 操作手冊_單面.doc

SL2511 SR Plus 操作手冊_單面.doc IEEE 802.11b SL-2511 SR Plus SENAO INTERNATIONAL CO., LTD www.senao.com - 1 - - 2 - .5 1-1...5 1-2...6 1-3...6 1-4...7.9 2-1...9 2-2 IE...11 SL-2511 SR Plus....13 3-1...13 3-2...14 3-3...15 3-4...16-3

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

ebook140-11

ebook140-11 11 VPN Windows NT4 B o r d e r M a n a g e r VPN VPN V P N V P N V P V P N V P N TCP/IP 11.1 V P N V P N / ( ) 11.1.1 11 V P N 285 2 3 1. L A N LAN V P N 10MB 100MB L A N VPN V P N V P N Microsoft PPTP

More information

02

02 Thinking in C++: Volume One: Introduction to Standard C++, Second Edition & Volume Two: Practical Programming C++ C C++ C++ 3 3 C C class C++ C++ C++ C++ string vector 2.1 interpreter compiler 2.1.1 BASIC

More information

ebook 145-6

ebook 145-6 6 6.1 Jim Lockhart Windows 2000 0 C S D Wo r m. E x p l o r e Z i p z i p p e d _ f i l e s. e x e Wo r m. E x p l o r e Z i p H i Recipient Name! I received your email and I shall send you a reply ASAP.

More information

epub29-13

epub29-13 T C P 13 HTTP 13.1 (Hypertext Transfer Protocol H T T P ) ( World Wide We b W W W We b ) H T T P We b 1 2 We b We b N F S n e t ( 13-1 ) 1994 1 H T T P.01.04.07.10.01.04 13-1 NFSnet ( f t p :// f t p.

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

A Preliminary Implementation of Linux Kernel Virus and Process Hiding 邵 俊 儒 翁 健 吉 妍 年 月 日 学 号 学 号 学 号 摘 要 结 合 课 堂 知 识 我 们 设 计 了 一 个 内 核 病 毒 该 病 毒 同 时 具 有 木 马 的 自 动 性 的 隐 蔽 性 和 蠕 虫 的 感 染 能 力 该 病 毒 获 得 权 限 后 会 自 动 将 自 身 加 入 内 核 模 块 中 劫 持 的 系 统 调 用 并 通 过 简 单 的 方 法 实 现 自 身 的

More information

untitled

untitled Ogre Rendering System http://antsam.blogone.net AntsamCGD@hotmail.com geometry systemmaterial systemshader systemrendering system API API DirectX OpenGL API Pipeline Abstraction API Pipeline Pipeline configurationpipeline

More information

R r r R r r x V A x V A 1 2 1 2 F = s mv 2 mv 1 2 2 u u 2f 2f u f u f (v) Q = cm t = Q = Lm = Q = Lm Q = qm Q = W / J 2 Q = I Rt 1 1 1 1 = + + + R R1 R2 R n 2gl 4 3 B mgl = 1 2 mv 2 B

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

ebook65-20

ebook65-20 2 0 H T T P C G I We b C G I We b H T M L C G I H T M L C G I 20.1 HTTP 17 We b N e t s c a p e Internet Explorer We b A p a c h e I I S C G I H T T P HTTP 1.0 HTTP 1.1 I n t e r n e t I n t e r n e t

More information

untitled

untitled ...2...3...4...6...6...8...11...14...18...19...20...22...22...23...25...26...27...28...29...29...29 4-1 - ( ) 88 37 88 37 200121 2003 4 18 [2003]48 1.5 4-2 - ( ) 25 1 1 100032 2004 09 17 [1998]12 ( ) (

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074> 软 件 架 构 师 研 修 讲 座 胡 协 刚 软 件 架 构 师 UML/RUP 专 家 szjinco@public.szptt.net.cn 中 国 软 件 架 构 师 网 东 软 培 训 中 心 小 故 事 : 七 人 分 粥 当 前 软 件 团 队 的 开 发 现 状 和 面 临 的 问 题 软 件 项 目 的 特 点 解 决 之 道 : 从 瀑 布 模 型 到 迭 代 模 型 解 决 项

More information

赔 偿 ), 保 险 公 司 在 其 承 保 范 围 内 承 担 赔 偿 责 任 ;2 案 件 受 理 费 由 四 被 告 承 担 为 支 持 其 诉 讼 主 张, 原 告 江 明 相 在 举 证 期 限 内 向 本 院 提 供 了 下 列 证 据 材 料 供 法 庭 组 织 质 证 : 1 鉴 定

赔 偿 ), 保 险 公 司 在 其 承 保 范 围 内 承 担 赔 偿 责 任 ;2 案 件 受 理 费 由 四 被 告 承 担 为 支 持 其 诉 讼 主 张, 原 告 江 明 相 在 举 证 期 限 内 向 本 院 提 供 了 下 列 证 据 材 料 供 法 庭 组 织 质 证 : 1 鉴 定 原 告 江 明 相 贵 州 省 织 金 县 人 民 法 院 民 事 判 决 书 委 托 代 理 人 江 如 红 ( 系 原 告 长 子 ) 委 托 代 理 人 江 如 平 ( 系 原 告 次 子 ) 被 告 李 启 富 被 告 龚 忠 吉 被 告 中 国 太 平 洋 财 产 保 险 股 份 有 限 公 司 重 庆 分 公 司 法 定 代 表 人 周 炯, 该 公 司 总 经 理 委 托 代 理 人

More information

Microsoft Word - RAP 050120 CHI.doc

Microsoft Word - RAP 050120 CHI.doc 利 用 世 行 贷 款 柳 州 市 环 境 治 理 工 程 移 民 安 置 计 划 柳 州 市 城 市 投 资 建 设 发 展 有 限 公 司 柳 州 市 环 境 卫 生 管 理 处 二 00 五 年 一 月 二 十 日 0 目 录 第 一 章 项 目 简 述...6 1.1 水 环 境 综 合 治 理 项 目...8 1.2 城 市 公 厕 项 目...12 1.3 垃 圾 转 运 站 建 设 项

More information

文档 3

文档 3 1 2 3 4 5 6 / A B A B B A 7 8 9 10 11 12 OO A B A B 13 14 15 16 17 18 19 20 21 22 OOA OOA 23 24 25 OOA OOA 26 27 28 29 30 31 32 use case 33 use case 34 35 36 37 OOD OOA OOD 38 OOA 39 OOD 40 41 / 42 OOD

More information

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

ebook70-5

ebook70-5 5 / 5.1 L i n u x L i n u x X L i n u x 5.1.1 touch t o u c h t o u c h G N U t o u c h # touch newfile # ls -l newfile - r w - r - - r - - 1 bball users 0 Jan 5 12 : 40 n e w f i l e t o u c h 0 # > newfile2

More information

目 錄 附 件 4-1-1 休 憩 系 專 任 教 師 學 術 研 究 表 現 一 覽 表... I 附 件 4-3-1 真 理 大 學 休 閒 遊 憩 事 業 學 系 學 士 論 文 導 引... XIV 附 件 4-5-1 真 理 大 學 學 術 研 究 獎 勵 辦 法 與 真 理 大 學 補

目 錄 附 件 4-1-1 休 憩 系 專 任 教 師 學 術 研 究 表 現 一 覽 表... I 附 件 4-3-1 真 理 大 學 休 閒 遊 憩 事 業 學 系 學 士 論 文 導 引... XIV 附 件 4-5-1 真 理 大 學 學 術 研 究 獎 勵 辦 法 與 真 理 大 學 補 真 理 大 學 休 閒 遊 憩 事 業 學 系 102 年 第 二 週 期 系 所 評 鑑 項 目 四 附 件 資 料 學 術 與 專 業 研 究 日 期 :2013 年 4 月 8-9 日 1 目 錄 附 件 4-1-1 休 憩 系 專 任 教 師 學 術 研 究 表 現 一 覽 表... I 附 件 4-3-1 真 理 大 學 休 閒 遊 憩 事 業 學 系 學 士 論 文 導 引... XIV

More information

3 N D I S N D I S N D I S N D I D D K C p a c k e t. c o p e n c l o s. c r e a d. c w r i t e. c p a c k e t. r c p a c k e t. s y s p a c k e t. i n

3 N D I S N D I S N D I S N D I D D K C p a c k e t. c o p e n c l o s. c r e a d. c w r i t e. c p a c k e t. r c p a c k e t. s y s p a c k e t. i n 3 N D I S 3 N D I S N D I S N D I S N D I D D K C p a c k e t. c o p e n c l o s. c r e a d. c w r i t e. c p a c k e t. r c p a c k e t. s y s p a c k e t. i n f C a n a l y z e. c c h i l d w i n. c

More information

SB 綱 領 : (1) 消 防 服 務 管 制 人 員 : 就 年 度 需 要 特 別 留 意 的 事 項 中, 當 局 提 到 年 度 內, 消 防 處 會 啟 用 啟 德 新 建 並 設 有 救 護 設 施 的 消 防 局, 請 告 知 有 關

SB 綱 領 : (1) 消 防 服 務 管 制 人 員 : 就 年 度 需 要 特 別 留 意 的 事 項 中, 當 局 提 到 年 度 內, 消 防 處 會 啟 用 啟 德 新 建 並 設 有 救 護 設 施 的 消 防 局, 請 告 知 有 關 SB233 4865 綱 領 : (3) 救 護 服 務 管 制 人 員 : 處 方 表 示, 在 2013-14 年 度 會 啟 用 救 護 信 息 宣 傳 車, 以 繼 續 加 強 宣 傳 教 育 市 民 適 當 地 使 用 緊 急 救 護 服 務, 其 詳 情 及 為 何? 提 問 人 : 陳 家 洛 議 員 救 護 信 息 宣 傳 車 於 2013 年 年 初 投 入 服 務, 消 防 處

More information

epub 75-1

epub 75-1 1 Linux L i n u x L i n u x L i n u x L i n u x L i n u x 1.1 Linux 1991 Linus To r v a l d s Intel PC U N I X L i n u x L i n u x L i n u s P C P C L i n u s M i n i x U N I X P C L i n u s I n t e r

More information

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與 程 式 編 写 語 言 在 完 成 這 章 後, 你 將 能 夠 了 解 程 式 編 写 語 言 的 功 能 了 解 高 階 語 言 和 低 階 語 言 之 間 的 分 別 知 道 翻 譯 程 式 的 意 義 和 能 夠 把 翻 譯 程 式 分 類 為 : 匯 編 程 式 編 譯 程 式 和 解 譯 程 式 認 識 不 同 翻 譯 程 式 的 優 點 和 缺 點 程 式 是 指 揮 電 腦 的 指

More information

Microsoft PowerPoint - ARC110_栾跃.ppt

Microsoft PowerPoint - ARC110_栾跃.ppt ARC110 软 件 构 架 设 计 的 原 则 和 指 南 课 程 内 容 概 述 介 绍 和 引 言 软 件 构 架 和 构 架 师 软 件 构 架 的 设 计 模 式 框 架 和 参 照 设 计 自 我 介 绍 第 一 代 自 费 留 学 生 : 美 国 南 伊 利 诺 州 立 大 学 (SIUE) 电 机 工 程 学 士 (1984) 及 硕 士 学 位 (1985) 历 任 OwensIllinois,

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

ebook 132-6

ebook 132-6 6 SQL Server Windows NT Windows 2000 6.1 Enterprise Manager SQL Server Enterprise Manager( ) (Microsoft Management C o n s o l e M M C ) Enterprise Manager SQL Server Enterprise Manager 6.1.1 Enterprise

More information

epub 66-4

epub 66-4 4 5 Page Layout Wi z a r d Visio 2000 Page Layout Wi z a r d 4 Visio Custom Properties Visio 2000 O ffice Layout Cause and Effect Diagram Visio 2000 1) 2) 4.1 Visio 2000 F i l e N e w Visio 2000 Block

More information

CDWA Mapping. 22 Dublin Core Mapping

CDWA Mapping. 22 Dublin Core Mapping (version 0.23) 1 3... 3 3 3 5 7 10 22 CDWA Mapping. 22 Dublin Core Mapping. 24 26 28 30 33 2 3 X version 0.2 ( ) 4 Int VarcharText byte byte byte Id Int 10 Management Main Code Varchar 30 Code Original

More information

Microsoft Word - 3D手册2.doc

Microsoft Word - 3D手册2.doc 第 一 章 BLOCK 前 处 理 本 章 纲 要 : 1. BLOCK 前 处 理 1.1. 创 建 新 作 业 1.2. 设 定 模 拟 控 制 参 数 1.3. 输 入 对 象 数 据 1.4. 视 图 操 作 1.5. 选 择 点 1.6. 其 他 显 示 窗 口 图 标 钮 1.7. 保 存 作 业 1.8. 退 出 DEFORMTM3D 1 1. BLOCK 前 处 理 1.1. 创 建

More information

ebook20-8

ebook20-8 8 Catalyst 5000 7 V L A N C a t a l y s t V L A N V L A N 8.1 VLAN VTP V L A N A VLAN VLAN 10 VLAN 20 VLAN 10 VLAN 20 B VLAN VLAN 10 VLAN 20 VLAN 10 C VLAN VLAN 10 VLAN 20 VLAN 10 VLAN 20 8-1 VLAN 8 Catalyst

More information

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc AirTrack T600 http://www.netac.com.cn Netac Netac AirTrack OnlyDisk Netac Netac Netac http://www.netac.com.cn Netac 800-830-3662 FCC 15 B 1 2 3 4 / FCC 20cm 1 2 3 / / ...1 1.1...1 1.2...1 1.3...1 1.4...3...4

More information

西部人居环境学刊2016年第1期.indd

西部人居环境学刊2016年第1期.indd 2016年第1期 / 西部人居环境学刊 / 095 风景园林设计与研究 DOI: 10.13791/j.cnki.hsfwest.20160116 金云峰, 杨玉鹏. 数字化设计与建造技术在景观中的应用研究[J]. 西部人居环境学刊, 2016, 31(01): 95-100. 数字化设计与建造技术在景观中的应用研究* The Application of Digital Design and Fabrication

More information

18 UML UP 2.2 UP Software Engineering Process S E P w h o w h a t when h o w 2-2 S E P 2-2 Unified Software Development Process U S D P U M L S E P UP

18 UML UP 2.2 UP Software Engineering Process S E P w h o w h a t when h o w 2-2 S E P 2-2 Unified Software Development Process U S D P U M L S E P UP 2 2.1 U P U U P 2. 4 U P R U P Rational Unified Process 2. 5 U P U P O O [Jacobson 1] U P [Kroll 1] [Kruchten 2] [Ambler 1] [Ambler 2] [Ambler 3] R U P 2.3 UP 2.2 U P? U P R U P 2.4 UP R U P 2.5 U P 2.6

More information

IP-Routing-05.pdf

IP-Routing-05.pdf RI P R I P - 2 RIP -1 R I P - 2 DV RIP -1 RIP-2 16... RIP-2 RIP-2 RIP -1 R I P - 2 RIP-2 RIP-2 RIP-2 V L S M disc ontiguous addr ess sp ace C I D R Cla ssless In ter -Dom ain Routing 121 1 2 2 IP RIP-2

More information

ebook50-14

ebook50-14 14 M F C 74 75 76 77 M F C 78 M F C 79 M F C 80 D e l e t e Delete ( ) 81 M F C 14.1 74 14-1 Cut Paste C E d i t 14-1 1. C l a s s Wi z a r d C E d i t C l a s s Wi z a r d W M _ R B U T TO N D O W N 2.

More information

epub 77-2

epub 77-2 2 A u t o C A D A u t o C A D 2.1 A u t o C A D. D W T A u t o C A D. D W T S AV E A S A u t o C A D A u t o C A D N E W C T R L - N 30 AutoCAD A u t o C A D 2-1 2-1 A u t o C A D A u t o C A D ~ 2.1.1

More information

ZHFX1302.mps

ZHFX1302.mps 窑 员 苑 源 窑 中 华 放 射 医 学 与 防 护 杂 志 圆 园 员 猿 年 源 月 第 猿 猿 卷 第 圆 期 摇 悦 澡 蚤 灶 允 砸 葬 凿 蚤 燥 造 酝 藻 凿 孕 则 燥 贼 袁 粤 责 则 蚤 造 圆 园 员 猿 袁 灾 燥 造 援 猿 猿 袁 晕 燥 援 圆 四 例 骨 髓 型 急 性 放 射 病 患 者 受 照 后 员 圆 年 医 学 随 访 观 察 窑 放 射 卫 生 窑

More information

关于试行《高等学校从事有害健康工种人员营养保健等级和标准的暂行规定》的通知

关于试行《高等学校从事有害健康工种人员营养保健等级和标准的暂行规定》的通知 关 于 试 行 高 等 学 校 从 事 有 害 健 康 工 种 人 员 营 养 保 健 等 级 和 标 准 的 暂 行 规 定 的 通 知 教 备 局 字 1988 1988 00 008 号 委 属 各 高 等 学 校 : 高 等 学 校 从 事 有 害 健 康 工 种 人 员 营 养 保 健 等 级 和 标 准 的 暂 行 规 定, 自 一 九 八 三 年 以 来 在 全 国 广 泛 征 求 意

More information

epub 79-1

epub 79-1 1 XML X M L X M L X M L We b 1.1 markup language M L M L A S C I I A S C I I C 0 0 0 1 F C R - L F M S - D O S M S - Wi n d o w s U n i x L F M a c O S C R A S C I I A S C I I -. - -. C C + + { }. b e

More information

wq.doc

wq.doc Kent Beck James Grenning Robert C. Martin Mike Beedle Jim Highsmith Steve Mellor Arie van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

ebook60-13

ebook60-13 13 H T M L F l a s h J a v a < i m g > 13.1 H T M L A c t i v e X H T M L < i m g > HTML 4.0 < o b j e c t > < / o b j e c t > 13.1.1 H T M L < o b j e c t > c l a s s i d d a t a < p a r a m > 1.

More information