zoukankan      html  css  js  c++  java
  • [置顶] 我的设计模式学习笔记------>Java设计模式总概况

    设计模式的概念最早起源于建筑设计大师Alexander的《建筑的永恒方法》一书,尽管Alexander的著作是针对建筑领域的,但是他的观点实际上用用于所有的工程设计领域,其中也包括软件设计领域。在《建筑的永恒方法》一书中是这样描述模式的:

    模式是一条由三个部分组成的通用规则:他表示一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。

    软件领域的设计模式也有类似的定义:设计模式是对处于特定环境下,经常出现的某类软件开发的问题的一种相对成熟的设计方案。

    所有资深软件设计师,他们积累了足够的经验,这些经验可以让他们快速、优雅地解决软件设计开发中的大量重复问题。而设计模式的最终目的就是帮助人们利用软件设计师的集成经验,从而设计出更加优秀的软件。

    当然,写此文只是记录本人学习设计模式过程中的一点感悟,希望对读者有所帮助。实际上,设计模式的理解必须建立以足够的代码积累量作为基础。

    根据Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides几个软件设计模式的奠基人的说法,设计模式常常被分成如下三类:

     创建型模式 :创建对象时,不再由我们直接实例化对象,而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。

    1.      抽象工厂模式(AbstractFactory)
    2.       工厂方法模式(FactoryMethod)
    3.       单例模式(Singleton)
    4.       创建者模式(Builder)
    5.       原型模式(Prototype)
         结构性模式:用于帮助将多个对象组织成更大的结构。
    1.       适配器模式(Adapter)
    2.       桥接模式(Bridge)
    3.       组合模式(Composite)
    4.       装饰模式(Decorator)
    5.       外观模式(Facade)
    6.       享元模式(Flyweight)
    7.       代理模式(Proxy)
       行为型模式:用于帮助系统间各对象的通信,以及如何控制复杂系统中的流程。
    1.       责任链模式(Chain of Responsibility)
    2.       命令模式(Command)
    3.       解释器模式(Interpreter)
    4.       迭代器模式(Iterator)
    5.       中介者模式(Mediator)
    6.       备忘录模式(Memento)
    7.       状态模式(State)
    8.       策略模式(Strategy)
    9.       模板方法模式(TemplateMethod)
    10.       观察者模式(Observer)
    11.       访问者模式(Visitor)

    下面看一张本人用思维导图软件做的设计模式的总概况图:

    ==================================================================================================

      作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

      转载请保留原文地址http://blog.csdn.net/ouyang_peng

    ==================================================================================================

  • 相关阅读:
    Uva673 Parentheses Balance
    cordforce Educational Codeforces Round 47 补题笔记 <未完>
    cordforce 495 补题 <未完>
    linux 基本命令笔记
    app审核相关
    CATransform3D
    UITableView点击切换状态分析
    iOS大转盘抽奖
    被忽视的控件UIToolbar
    AVPlayerViewController视频播放器
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3370815.html
Copyright © 2011-2022 走看看