zoukankan      html  css  js  c++  java
  • 设计模式

    一、定义设计模式

    首先定义“模式”:模式是在某情境下,针对某问题的某种解决方案。其中:

    • 情境:是应用某个模式的情况。
    • 问题:是想在某情境下达到的目标。
    • 解决方案:是你所追求的一个通用的设计,用来解决约束、达到目标。

      “如果你发现自己处于某个情境下,面对着所欲达到的目标被一群约束影响着的问题,然而,你能够应用某个设计,克服这些约束并达到该目标,将你领向某个解决方案。”

     二、模式与描述

    装饰者------包装一个对象,以提供新的行为

    状态--------封装了基于状态的行为,并使用委托在行为之间切换

    迭代器------在对象之中游走,而不是暴露集合的实现

    外观--------简化一群类的接口

    策略--------封装可以互换的行为,并使用委托来决定要是用哪一个

    代理--------包装对象,以控制对此对象的访问

    工厂方法----由子类决定要创建的具体类是哪一个

    适配器------封装对象,并提供不同的接口

    观察者------让对象能够在状态改变时被通知

    模板方法----由子类决定如何实现一个算法中的步骤

    组合--------客户用一致的方式处理对象集合和单个对象

    单件--------确保有且只有一个对象被创建

    抽象工厂----允许客户创建对象的家族,而无需指定他们的具体类

    命令--------封装请求成为对象

     三、模式分类

    创建型

      Singleton

      Builder

      Prototype

      Abstract Factory

      Factory Method

    行为型

      Template Method

      Visitor

      Mediator

      Iterator

      Command

      Memento

      Inetpreter

      Observer

      Chain of Responsibility

      State

      Strategy

    结构型

      Decorator

      Proxy

      Composite

      Facade

      Flyweight

      Bridge

      Adaptor

  • 相关阅读:
    [BZOJ3884] 上帝与集合的正确用法
    [BZOJ3518] 点组计数
    [BZOJ3601] 一个人的数论
    [BZOJ3529] [Sdoi2014]数表
    原生js实现无缝滚动轮播图-点击页码即刻显示该页码的内容
    原生js实现无缝滚动轮播图
    vue封装tinymce富文本组件,图片上传回调方法
    vue-cli项目结合Element-ui基于cropper.js封装vue图片裁剪组件
    js实现多文件上传(二)-- 拖拽上传
    js实现多文件上传(一)-- 图片转base64回显
  • 原文地址:https://www.cnblogs.com/maybe1491/p/3089718.html
Copyright © 2011-2022 走看看