怎样应用设计模式

原创 2005年05月31日 15:19:00
   

Erich Gamma的一次谈话,第一部分,by Bill Venners2005-5-23

摘要:

在开发者中,设计时,采用设计模式是一种比较流行的方法。但是用什么比较合适的方法去考虑设计模式?在这次访谈中,《设计模式》这本书的作者Erich Gamma,和Bill Venners讨论用正确的方法去思考好使用设计模式。


设计模式的真实价值

Bill VennersBruce Eckel和我在教授设计课程的时候,我们发现人们真的想知道 Gang of FourGoF)模式。设计模式的市场是很大的。

Erich Gamma:仍然,但十年后呢?

Bill Venners:是的。人们想知道模式。我怀疑模式是一个通用语。关于模式,我想揭开这个欺诈去找出什么是人们应该知道的。他们应该以什么样的态度去应对模式?人们怎样才能使用设计模式去完成好一项工作?什么是最真实的价值。

Erich Gamma:我认为整个模式能帮助人们以面向对象的方法去思考:你怎样利用多态,结构设计,团对,平衡责任,提供能插入的行为。模式超越了在对象中应用图形形状这样的例子,在形状类中的继承和使用一些多态的绘画方法。当你懂得设计模式的时候,你才真正的学习了多态。所以设计模式是一种学习面向对象和设计的好的方法。

以上所说的,每一个独立的模式都有不同的特征,在一些地方你需要更灵活的模式,或者需要形成一种抽象的事物,或者使你的代码变少。这就是在一个大系统中真正的大问题。你怎样维护好你的层次?你怎样避免循环依赖?GoF模式提供很少的工具去帮你解决这些问题。他们不是用来提供合适的解决方案,它是用来解释权衡关系的。即使模式是从具体使用中抽象出来的,它们也提供给你可实现的线索的价值。我的观点是,事实上,模式是可实现的,那才体现了它们的价值。

模式是从许多有经验的专家中提取出来的。他们能够让你重复一个成功的设计。你可以站在专家的肩膀上,而不必去重新开始。然而,模式能够使许多实现变种,你仍然应该保持清醒的头脑。模式提供给你设计结构的名字,阻挡了他们提供给你一个词汇去描述和讨论一个特殊的设计。

另外一个问题就是我们怎样教授模式。并非我真正知道你应该做什么,但是我认为你不应该做什么,仅仅是进行分类和列举这23种设计模式。这种方法不会带来任何东西。你应该感觉到设计模式的不足之处。我猜想你只是评价一个模式,而没有感觉到模式带来的痛苦。
......to be continue
本文来自http://www.artima.com/lejava/articles/gammadp.html
我尝试着进行翻译,著作权归by Bill Venners

JAVA中设计模式的实际应用

最近在看设计模式,找到一篇不错的博文,讲解各种设计模式在JAVA中的具体应用场景,博文地址 http://blog.jobbole.com/62314/。 结构型模式: 适配器模式: ...
  • seudongnan
  • seudongnan
  • 2017年03月04日 10:36
  • 1036

设计模式在项目中的应用

  设计模式在实际项目中的应用 概要Leader 设计并实现了一个基于OSGI的架构,不同的功能模块以插件的形式溶入这个系统。由于使用了ibatis,所以不同模块注入后就产生了一个需求。需要提供一个管...
  • tongbo
  • tongbo
  • 2006年08月25日 16:26
  • 950

Java设计模式的常见应用场景

一、Java I/O中的设计模式1、适配器模式适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。通常被用在一个项目需要引用一些开...
  • xiaokang123456kao
  • xiaokang123456kao
  • 2017年08月10日 16:20
  • 2798

PHP中的设计模式及其实际应用浅析

设计模式在各种语言中都有很重要的应用,每种设计模式都有其特有的优点以及使用场景。接下来,将从单例模式、工厂模式、组合模式以及策略模式四个模式,介绍设计模式及其实际项目中的简单应用。 一、单例模式 ...
  • fareise
  • fareise
  • 2016年04月23日 17:55
  • 3175

九种常用设计模式的简单应用

什么是设计模式 一、工厂方法模式(Factory Method Pattern) 1、1适用于以下情况 1、2类图 1、3实例:工厂方法模式之多数据库链接的实现 1、4优缺点 二、单例模式...
  • guduxiaomo123
  • guduxiaomo123
  • 2014年05月12日 09:59
  • 984

设计模式学习总结系列应用实例

设计模式里面的种种应用实例,包括生活中的和JAVA JDK下的例子
  • hacke2
  • hacke2
  • 2014年05月03日 17:12
  • 1977

面试要点之——23种设计模式及其应用场景

设计模式主要分三个类型:创建型、结构型和行为型。  其中创建型有:      一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 ;     应用场景:一个无状...
  • zzxian
  • zzxian
  • 2012年12月23日 11:21
  • 10281

23种设计模式(16):门面模式

本文主要介绍设计模式中的门面模式。
  • psp0001060
  • psp0001060
  • 2016年02月26日 14:10
  • 3593

设计模式及在Java/Android中的应用

设计模式- http://blog.csdn.net/SEU_Calvin/article/category/6226468 【设计模式&重构&UML建模】- http://blog.csd...
  • ShareUs
  • ShareUs
  • 2016年03月03日 10:32
  • 2500

php常用几种设计模式的应用场景

1.单例设计模式所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中!单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。一个单...
  • z15818264727
  • z15818264727
  • 2016年08月29日 16:25
  • 4730
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样应用设计模式
举报原因:
原因补充:

(最多只允许输入30个字)