设计模式的实际应用

转载 2006年06月24日 21:38:00

通常,概念和这些概念在现实世界中的应用是有区别的,设计模式也不例外。   设计模式无处不在。在阅读技术方面的出版物或者浏览技术方面的网站时,很容易发现对设计模式的引用。到目前为止,您很可能已经阅读过(至少翻阅过)一些设计模式方面的书籍,如《Core J2EE Design Patterns》或者Gang of Four编写的《Design Patterns》。此时,您可能会对设计模式有一些疑问。设计模式如何帮助我?他们是银弹吗?使用设计模式有什么问题吗?为什么我不能从集成开发环境(integrated development environment,IDE)中获得设计模式?  上述的几个问题是采用设计模式进行处理过程中遇到的一些经典问题。通常,概念和这些概念在显示世界中的应用是有区别的,设计模式也不例外。本文将讨论设计模式在现实世界中的应用。这些信息可以帮助您成功地在项目中采用设计模式来作出正确的决定。  设计模式提供了一种共享经验的方式,可以使团体受益和避免不断的重复发明。设计模式通常捕捉问题的描述、问题的语境、推荐的问题解决方案以及使用解决方案后可以预见到的结果。为了具有最广泛的适用性(从而对更多的读者有用),设计模式通常从取决于环境的精确细节中抽象而来。这种抽象性产生了一些把设计模式应用到现有的案例中所必需的译码。这是一个重要细节:尽管设计模式是共享专业知识的好方法,但通常它对正确应用专业知识是非常重要的。  设计模式这个概念最初产生于建筑行业。设计师(设计建筑物而不是计算机系统)意识到他们需要共享有关正确设计技术的想法。这些想法是在可以使设计师团体从分享经验和教训中获益的设计模式中形成的。设计模式在80年代后期从建筑业进入计算机系统领域。面向对象(Object-oriented,OO)原则逐渐得到普及,而设计模式成为培育新的OO追随者的最佳实践。  Richard Gamma等(人们通常把他们称作 Gang of Four [GoF] )编著的《Design Patterns: Elements of Reusable Object-Oriented Software》一书使设计模式成为万众瞩目的焦点。随着设计模式逐渐普及,他们所涉及的领域就像“Ben and Jerry”效应那样也逐渐广泛起来。对那些不熟悉著名冰淇淋品牌的人来说,Ben and Jerry是一家冰淇淋产品的供应商,其冰淇淋产品拥有各种可以想象得到的配料组合(还包括一些您永远想象不到的)。因此,它就是设计模式,和普通的OO设计模式一样来源于GoF的著作,但是现在包括了专为开发语言、应用服务器、行业合成等提供的设计模式。  设计模式通常根据一些公共特性而组合在一起。GoF的著作把设计模式划分为三类:Creational、Behavioral和Structural。用于J2EE的设计模式通常划分为表现层(Presentation Tier)、业务逻辑层(Business Logic Tier)和集成层(Integration Tier)。这种分组方式可以使描述所有设计模式共享的公共细节更加轻松,或者使设计模式的分类和发现更加轻松。  在对设计模式实际应用的讨论中,需要把设计模式划分为两类:broad exposure和isolated use。这种划分基于设计模式对应用程序设计人员和开发人员的可见性和应用程序的多个部分对设计模式的相依性。  Broad exposure 设计模式因为可以影响多个团队成员或者应用程序的多个方面的设计和开发而闻名。这类设计模式的品质包括:

相关文章推荐

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

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

5. php设计模式:策略模式的实际应用

原文地址 最近写了一个集成各家支付的开源项目(支付宝与微信)。项目地址。让调用支付变得更加简单、统一。目前已经在公司商城推行使用,上海一米市集也采用了这个支付集成项目。我可不是打广告哦,只是为了让大家...

设计模式-单例模式(Singleton)在Android中的应用场景和实际使用遇到的问题

介绍在上篇博客中详细说明了各种单例的写法和问题。这篇主要介绍单例在Android开发中的各种应用场景以及和静态类方法的对比考虑,举实际例子说明。单例的思考写了这么多单例,都快忘记我们到底为什么需要单例...

学习心得之如何将设计模式运用到实际编码中

学过java的人应该都知道二十三种设计模式,每一个想把代码写的更优美的人,都想过如何将设计模式运用到代码当中。本人也一直在思考这个问题,困惑很久,但是依然还是迷茫中,所以在这里写下我的迷茫和一知半解,...

设计模式-六大设计原则(附加实际开发建议以及计算器例子)

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,是软件工程的基石脉络,如同大厦的结构一样。文章结构:1.单一职责原则(SRP);2.里氏替换原则(L...

[设计模式]_[中级]_[观察者模式在项目中实际使用例子]

场景: 1. 比如在界面开发中,多个窗口之间需要通讯,比较常见的方法就是各个窗口之间包含对其他窗口的引用,之后在需要时通过其他窗口的引用来调用相应的函数获取相应的值; 但是这个确定还是比较明显的,...

实际案例讲解iOS设计模式——MVC模式

本文通过一个实际的案例,讲解如何将一个都写在ViewController中的代码,使用MVC使用分别写到Model、View和Controller之间,以减轻Controller的代码量,减少各个模块...

java设计模式之外观模式(门面模式)   针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下。 一、概念介绍   外观模式(Facade),他隐藏了系统的复杂性,并

java设计模式之外观模式(门面模式)   针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下。 一、概念介绍   外观模式(Facade),他隐藏了系统的复杂...

MongoDB应用设计模式

  • 2017-09-25 14:25
  • 34.17MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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