java中23种设计模式详细
时间:2025-04-12
时间:2025-04-12
java中23种设计模式详细
23种设计模式汇集
如果你还不了解设计模式是什么的话?
那就先看设计模式引言 !
学习GoF
设计模式的重要性
建筑和软件中模式之异同
A. 创建模式
设计模式之Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式
保证一个类只有一个实例,并提供一个访问它的全局访问点
设计模式之Factory(工厂方法和抽象工厂)
使用工厂模式就象使用new一样频繁.
汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder模式就是将这两种情况分开进行。
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
B. 结构模式
设计模式之Adapter(适配器)
使用类再生的两个方式:组合(new)和继承(extends),这个已经在thinking in java中提到过.
设计模式之Proxy(代理)
以Jive为例,剖析代理模式在用户级别授权机制上的应用
设计模式之Facade(门面?)
可扩展的使用JDBC针对不同的数据库编程,Facade提供了一种灵活的实现.
就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于和单位做买卖。文章中还对Jive再进行了剖析。
设计模式之Decorator(装饰器)
Decorator是个油漆工,给你的东东的外表刷上美丽的颜色.
设计模式之Bridge(桥连)
将牛郎织女分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合)
提供Java运行性能,降低小而大量重复的类的开销.
C. 行为模式
设计模式之Command(命令)
什么是将行为封装,Command是最好的说明.
设计模式之Observer(观察者)
介绍如何使用Java API提供的现成Observer
设计模式之Iterator(迭代器)
这个模式已经被整合入Java的Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入Collection中,直接使用Iterator进行对象遍历。
设计模式之Template(模板方法)
java中23种设计模式详细
实际上向你介绍了为什么要使用Java 抽象类,该模式原理简单,使用很普遍.
设计模式之Strategy(策略)
不同算法各自封装,用户端可随意挑选需要的算法.
设计模式之Chain of Responsibility(责任链)
各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个.
Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以.
状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.
设计模式之Memento(注释状态?)
很简单一个模式,就是在内存中保留原来数据的拷贝.
设计模式之Interpreter(解释器)
主要用来对语言的分析,应用机会不多.
设计模式之Visitor(访问者)
访问者在进行访问时,完成一系列实质性操作,而且还可以扩展.
设计模式引言
设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须找到相关的对象,以适当的粒度将它们归类,再定义类的接口和继承层次,建立对象之间的基本关系。你的设计应该对手头的问题有针对性,同时对将来的问题和需求也要有足够的通用性。
你也希望避免重复设计或尽可能少做重复设计。有经验的面向对象设计者会告诉你,要一下子就得到复用性和灵活性好的设计,即使不是不可能的至少也是非常困难的。一个设计在最终完成之前常要被复用好几次,而且每一次都有所修改。
有经验的面向对象设计者的确能做出良好的设计,而新手则面对众多选择无从下手,总是求助于以前使用过的非面向对象技术。新手需要花费较长时间领会良好的面向对象设计是怎么回事。有经验的设计者显然知道一些新手所不知道的东西,这又是什么呢?
内行的设计者知道:不是解决任何问题都要从头做起。他们更愿意复用以前使用过的解决方案。当找到一个好的解决方案,他们会一遍又一遍地使用。这些经验是他们成为内行的部分原因。因此,你会在许多面向对象系统中看到类和相互通信的对象( c o m m u n i c a t i n go b j e c t)的重复模式。这些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。
一个熟悉这些模式的设计者不需要再去发现它们,而能够立即将它们应用于设计问题中。以下类比可以帮助说明这一点。小说家和剧本作家很少从头开始设计剧情。他们总是沿袭一些业已存在的模式,像“悲剧性英雄”模式(《麦克白》、《哈姆雷特》等)或“浪漫小说”模式(存在着无数浪漫小说)。同样地,面向对象设计员也沿袭一些模式,像“用对象表示状态”和“修饰对象以便于你能容易地添加/删除属性”等。一旦懂得了模式,许多设计决策自然而然就产生了。
我们都知道设计经验的重要价值。你曾经多少次有过这种感觉—你已经解决过了一个问题但就是不能确切知道是在什么地方或怎么解决的?如果你能记起以前问题的细节和怎么解决它的,你就可以复用以前的经验而不需要重新发现它。 …… 此处隐藏:20309字,全部文档内容请下载后查看。喜欢就下载吧 ……