[转]Java设计模式学习心得
http://tech.it168.com/focus/200902/java-design/index.html
http://tech.it168.com/j/2007-05-17/200705170858843.shtml
http://tech.it168.com/j/e/2007-05-20/200705201337218.shtml
http://tech.it168.com/a2009/0221/266/000000266214.shtml
【IT168技术文档】整个设计模式贯穿一个原理:面对介面编程,而不是面对实现,(面向物件编程应该改爲面向介面编程)。目标原则是:降低耦合,增强灵活性。
一、创建模式
1.设计模式之Factory(工厂方法和抽象工厂)
使用工厂模式就象使用new一样频繁.
2.设计模式之Prototype(原型)
用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件。
3.设计模式之Builder
汽车由车轮方向盘发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行。
4.设计模式之Singleton(单态)
保證一个类只有一个实例,並提供一个访问它的全局访问点
二、结构模式
1.设计模式之Facade
可扩展的使用JDBC针对不同的资料库编程,Facade提供了一种灵活的实现。
2.设计模式之Proxy
以Jive爲例,剖析代理模式在用户级别授权机制上的应用
3.设计模式之Adapter
使用类再生的两个方式:组合(new)和继承(extends),这个已经在"thinkinginjava"中提到过。
4.设计模式之Composite
就是将类用树形结构组合成一个单位。你向别人介绍你是某单位,你是单位元元中的一个元素,别人和你做买卖,相当於和单位做买卖。文章中还对Jive再进行了剖析。
5.设计模式之Decorator
Decorator是个油漆工,给你的东东的外表刷上美丽的顔色。
6.设计模式之Bridge
将"牛郎织女"分开(本应在一起,分开他们,形成两个介面),在他们之间搭建一个桥(动态的结合)
7.设计模式之Flyweight
提供Java运行性能,降低小而大量重复的类的开销。
三、行爲模式
1.设计模式之Template
实际上向你介绍了爲什麽要使用Java抽象类,该模式原理简单,使用很普遍。
2.设计模式之Memento
很简单一个模式,就是在记忆体中保留原来资料的拷贝。
3.设计模式之Observer
介绍如何使用JavaAPI提供的现成Observer
4.设计模式之ChainofResponsibility
各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个。
5.设计模式之Command
什麽是将行爲封装,Command是最好的说明。
6.设计模式之State
状态是编程中经常碰到的实例,将状态物件化,设立状态变换器,便可在状态中轻鬆切换。
7.设计模式之Strategy
不同演算法各自封装,用户端可随意挑选需要的演算法。
8.设计模式之Mediator
Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以。
9.设计模式之Interpreter
主要用来对语言的分析,应用机会不多。
10.设计模式之Visitor
访问者在进行访问时,完成一系列实质性操作,而且还可以扩展。
11.设计模式之Iterator
这个模式已经被用来遍曆Collection中物件。使用频率很高。在Java中无需专门阐述,在大多数场合也无需自己制造一个Iterator,只要将物件装入Collection中,我们就直接可以使用Iterator模式。