美文网首页
设计模式

设计模式

作者: kimcastle | 来源:发表于2022-08-02 21:07 被阅读0次
设计模式入门
  • 计算机行业老话:设计即生活
    -- 由 ..... 谁设计,即是由 .....谁导演
  • 使用设计模式最好的方式是:把设计模式装进脑子里,然后在你的设计和已经有的应用中,寻找何处可以使用它们。


    如何使用设计模式

11 个即将要学的设计模式

  • 策略模式 (功能委托以及策略选择)
  • 观察者模式 (观察对象变化)
  • 装饰者模式 (赋予对象新功能)
  • 工厂模式 (如何创建新对象)* 单件模式 (只能有一个实例对象)
  • 命令模式
  • 适配器模式与外观察者模式
  • 模板方法模式
  • 迭代器与组合模式
  • 状态模式
  • 代理模式
  • 复合模式

题外话:如果你真的想学,而且学得更快、更深入,就应该注意你怎样才能集中注意力。思考自己是怎样思考的,并了解自己的学习方法。
我们长这么大都没有上过有关元认知或学习理论的课程。我们想学习,但是很少人教我们怎么学习。
接口代表每个行为(规定行为动作),而行为的每个实现都必须实现接口

策略模式

  • 定义:封装可以互换的行为,然后使用委托来决定采用哪个行为。通常由子类来决定具体的策略。


    策略模式
    子类决定采用什么策略
  • 优点:
    策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性

  • 缺点:
    (1)客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。
    (2)由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。
    Page:18

观察者模式

  • 定义:在对象之间定义一对多的关联关系,当一个对象改变状态时,主动通知依赖它的多个对象。


    观察者类图

装饰者模式

  • 定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。


    装饰者模式类图

    参考:blog.csdn.net/su2231595742/article/details/121329839

工厂模式

  • 定义:定义一个创建对象的接口,但是由子类决定实例化具体哪一类。
    工厂模式有3种:简单工厂模式、工厂模式、抽象工厂模式
    工厂类请看这篇文章,说得非常明白,看这一篇就够了:
    zhuanlan.zhihu.com/p/388263023

命令模式
在说命令模式之前,先提个醒,“命令模式”和“适配器模式”都是为了解决:调用者与接收者之间的关系。
“命令模式”:封装调用命令
“适配器模式”:解决调用者与接收者接口差异矛盾。

  • 定义:将请求封装成对象,以便不同的请求来参数化具体的接收者。


    命令模式类图

适配器模式

  • 定义:将一个类的接口,转换成客户期望的另一个接口。


    设配器形象图
  • 适配器类图
    这里只有一个重点,设配器(Adapter)必须实现目标接口(Interface Target)
    设配器类图

模板方法模式

  • 定义:在基础类的一个方法中定义一个算法的骨架,而将部分方法下放到子类去具体实现。子类可以在不改变算法架构的基础上,重新定义修改算中的某些方法。

模板方法模式就一个重点:泛化某些模板步骤中某些具体差异的操作步骤名称。

模板方法类图

迭代器与组合模式
定义:提供了一个方法,按一定顺序访问一个聚合里面的对象,而又不暴露其内部的结构。

迭代器类图

状态模式
定义:一个主类有多种状态,每种状态都独立出去成为一个个单独的状态类,状态类继承共同接口(接口规范行为)。主类可以有具体的操作(可能改变状态),再又当前状态决定具体行为。

状态模式类图

代理模式
定义:每一个代理,都代表着某个真实的对象。

远程调用方法4个要素:

  • 接口规范
  • 失败风险考虑(异常)
  • 请求变量过滤
  • 返回结果统一处理

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/xzriprtx.html