zoukankan      html  css  js  c++  java
  • 设计模式学习(一):设计模式概述

    一、什么是模式,什么是软件模式

    模式是在特定环境下人们解决某类重复出现问题的一套成功或有效地解决方案。

    软件模式是指在软件开发过程中某些可重现问题的有效解决方法,起基础结构主要由4部分构成,包括问题描述(待解决的问题时什么)、前提条件(在何种环境或约束条件下使用)、解法(如何解决)和效果(有哪些优缺点)。如下图所示:

    二、设计模式是什么

    1.设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码的可靠性。

    2.设计模式的关键要素是:模式名称、问题、解决方案和效果。

    问题:描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因。

    解决方案:描述了一个设计模式的组成部分,以及这些组成部分之间的相互关系、各自的职责和写作方式,通常解决方案通过UML类图和核心代码进行描述。

    效果:描述了模式的优缺点以及在使用模式时应权衡的问题。

    三、设计模式的分类

    GoF设计模式只有23个,根据它们的用途,设计模式可以分为创建型、结构型和行为型。

    创建型模式:5个,主要用于描述如何创建对象。

    结构型:7个,主要用于描述如何实现类或对象的组合。

    行为型:11个。主要用于描述类或对象怎样交互以及怎样分配职责。

    根据某个模式主要处理类之间的关系还是对象之间的关系,设计模式还可以分为类模式和对象模式。

    四、设计模式有什么用途

    1.使用这些方案可以避免做一些重复性的工作,有助于提高设计和开发效率。

    2.设计模式提供了一套通用的设计词汇和一种通用的形式来方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂。

    3.设计模式将有助于提高系统的灵活性和可扩展性。

    4.合理使用设计模式并对设计模式的使用情况进行文档化,将有助于别人更快地理解系统。

    5.对于初学者,学习设计模式将有助于初学者更加深入地理解面向对象的思想。

    五、如何学习及掌握设计模式

    1.关键在于多思考,多实践。

    2.在学习每一个设计模式的时候至少应该掌握如下几点:

    <1>这个设计及模式的意图是什么,它要解决一个什么样的问题,什么时候使用它。

    <2>它是如何解决问题的,掌握它的结构图,记住它的关键代码

    <3>能够想到至少两个它的应用实例,一个生活中的,一个软件中的。

    <4>这个模式的优缺点是什么,使用它的时候有什么注意事项。

  • 相关阅读:
    linux 下安装mongodb
    python 多线程, 多进程, 协程
    5.rabbitmq 主题
    4.rabbitmq 路由
    e.target与e.currentTarget对比
    使用ffmpeg下载m3u8流媒体
    本机添加多个git仓库账号
    IE hack 条件语句
    IE8 兼容 getElementsByClassName
    IE 下 log 调试的一点不同
  • 原文地址:https://www.cnblogs.com/sunshineground/p/3581861.html
Copyright © 2011-2022 走看看