a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 111|回复: 0

[其他] Java设计模式的学习心得

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
整个设计模式贯穿一个原理:面对介面编程,而不是面对实现,(面向物件编程应该改爲面向介面编程)。目标原则是:降低耦合,增7 h2 Z# @' D1 a8 P
         一、创建模式5 u6 w8 w9 F2 q7 B* L
  1. 设计模式之Factory(工厂方法和抽象工厂)
$ c1 n  P) `* j* b" }" }7 t1 D  P  使用工厂模式就象使用new一样频繁.
+ {3 h1 \3 L, t" c/ ^  2. 设计模式之Prototype(原型)
* C6 [& Y# C# s( s: I  用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件。, A6 }- R# s9 |5 y" ~- R% N/ c5 a
  3. 设计模式之Builder
9 ]6 }9 m' ]3 j% g/ V. |  汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行。1 z6 d9 V# i; D: I1 H1 ^8 _+ C% o
  4. 设计模式之Singleton(单态)8 D, t2 g' ~$ m+ V0 F7 i2 Q1 u9 W
  保證一个类只有一个实例,並提供一个访问它的全局访问点
  d0 w) F/ B) ~( k. J9 m8 y& ?2 Q+ Z8 x# P  二、结构模式2 q# `2 H' }' _! O' u( }/ L. Y: \4 H
  1. 设计模式之Facade9 C7 ?, U  f4 i6 H. l
  可扩展的使用JDBC针对不同的资料库编程,Facade提供了一种灵活的实现。% Y1 @4 z9 E7 H1 V# p) a; M
  2. 设计模式之Proxy
$ h3 i6 R+ s, H# M" [6 T3 `  以Jive爲例,剖析代理模式在用户级别授权机制上的应用) p  a/ ?- n0 ^3 u  n, ]# w
  3. 设计模式之Adapter+ C& d7 x. g1 M% d0 Z- i
  使用类再生的两个方式:组合(new)和继承(extends),这个已经在"thinking in java"中提到过。5 ~) v: i! {( ~$ s/ U
  4. 设计模式之Composite% p; h8 I  f  \( }% ?1 e) X
  就是将类用树形结构组合成一个单位。你向别人介绍你是某单位,你是单位元元中的一个元素,别人和你做买卖,相当於和单位做买卖。文章中还对Jive再进行了剖析。
( T/ y5 `6 s# @8 N  5. 设计模式之Decorator- F. ?; J- K' F7 w) J
  Decorator是个油漆工,给你的东东的外表刷上美丽的顔色。, j$ F, B4 V7 |: C" j
  6. 设计模式之Bridge
: {6 }$ v9 ?4 u% z% T6 L  将"牛郎织女"分开(本应在一起,分开他们,形成两个介面),在他们之间搭建一个桥(动态的结合)
# H( P: }: V+ C  l' K  7. 设计模式之Flyweight, I2 @5 E. O4 M( Y& {
  提供Java运行性能,降低小而大量重复的类的开销。
% i+ q9 ~' r" ^. O+ H  三、 行爲模式
6 z7 x* \' u2 R* O8 v  r- c  1. 设计模式之Template9 a/ S1 P0 I& g/ ~4 n; N6 w& ~3 b
  实际上向你介绍了爲什麽要使用Java 抽象类,该模式原理简单,使用很普遍。
. {/ D' c: D% H" q- w2 B  2. 设计模式之Memento
8 G& h3 Q6 k$ b. ~4 p4 u  很简单一个模式,就是在记忆体中保留原来资料的拷贝。5 l5 k0 {+ k& R+ S# `' f
  3. 设计模式之Observer
" {4 q8 Z/ e; j. f, S' d  介绍如何使用Java API提供的现成Observer" C! d& m+ T# c
  4. 设计模式之Chain of Responsibility
, d" w! P$ M% ^/ v" s9 S4 l  各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个。" h. {7 j* ]) p+ ]: R8 i% V7 V; ~$ p; E
  5. 设计模式之Command# \+ k) f% n1 W1 \% i
  什麽是将行爲封装,Command是最好的说明。9 J  {+ J4 x5 ?
        6. 设计模式之State
9 t  S9 P; B7 c  状态是编程中经常碰到的实例,将状态物件化,设立状态变换器,便可在状态中轻鬆切换。
, r6 Q- x% b/ o; t! i  7. 设计模式之Strategy
% H& Q) W- N/ K8 ?  不同演算法各自封装,用户端可随意挑选需要的演算法。
$ ]6 t$ t0 B3 ~' G4 E# L1 F  8. 设计模式之Mediator
% Y8 G% q+ j" U: Y/ W0 h  Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以。
* ?# k) c" S, o2 `  9. 设计模式之Interpreter
4 c9 \; ]3 Z% x0 n  主要用来对语言的分析,应用机会不多。
  M7 U/ n- a& i0 f! v( P7 P  10. 设计模式之Visitor
/ }# V2 I' }. g$ Z# W' ?  访问者在进行访问时,完成一系列实质性操作,而且还可以扩展。
7 L# o- I4 f" E& ?  11. 设计模式之Iterator% Z' m* S8 [$ ^6 Y- p; K7 \" f7 P
  这个模式已经被用来遍曆Collection中物件。使用频率很高。在Java中无需专门阐述,在大多数场合也无需自己制造一个Iterator,只要将物件装入Collection中,我们就直接可以使用Iterator模式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-27 21:16 , Processed in 0.826695 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表