对于模式的思考

2023-11-12

一是确定那些知识是需要掌握的,第二则是如何掌握。Pattern无疑是需要学习的,但事实是它很容易被遗忘,却很难在实际工作中熟练地运用。

方法就是将解决问题的模式与实际中某个重要的应用match起来。

1)Structural Pattern:

  •  Decorator, Proxy, Bridge

              它们有一个共同特点,就是采用这些模式的客户端都以间接方式来访问提供服务的对象。以Proxy为例,Proxy广泛

               应用在Java的RMI,MS的RPC,WCF中。

              通过Proxy隐藏了对象的marshal, 网络的传输使得客户端可以象使用local object一样来访问。

  •  Composite, Flyweight

 

  •   Adapter, Facade

           Type Library就是一个适配器层,通过它VB可以访问C++编写的COM组件。Automation也是一个Adapter, 通过它脚本语言

           也可以访问COM组件。

           比如C++ Standard Library中的容器类采用Adapter模式可实现内部使用同一个容器类,对用户提供

           Stack, queue, priority_queue等多种容器。

2)  Behavioral Pattern:

  •  Strategy, State, Template method

          这些模式基本上都是对问题本质的抽象,比如Strategy模式。以delegate为参数,例如delegate int calc(int x,int y) ;

          由客户端来决定实际要执行的操作,可以将两个参数相加,也可以想减等等。这样服务器端的对象可以很好的处理客户

          需求的变化。

  • Chain of Responsibility, Command

         

  • Iterator, Mediator, Observer

         Iteraotr对于Java和.NET中的集合类都非常重要。对集合中的对象进行遍历是一个非常常见的操作。

         Observer是一个重点。MVC可以说就是此模式的一个典型应用。MVC无论是在web开发还是在桌面开发现在都是最主流的。

         例如ASP.NET MVC, WPF中的MVVM。JAVA 中的struts等。

  • Visitor, Interpreter, Memento

         

3) Creational Pattern:

  • Prototype, Factory Method, Singleton

 

  • Abstract Factory, Builder

        

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于模式的思考 的相关文章

  • linux用dd命令刻录u盘,巧用linux dd命令刻录启动U盘

    dd命令是Linux UNIX 下的一个非常有用的命令 作用是用指定大小的块拷贝一个文件 并在拷贝的同时进行指定的转换 大部分用户只知道dd命令的这个用处 殊不知dd命令做usb启动盘也十分方便 下面就让我们一起来看看dd命令是如何运用到刻
  • 聊聊限流、熔断和降级

    背景 分布式系统中的调用关系错综复杂 如何保障整个系统平稳运行则显得尤为重要 限流 熔断和降级应运而生 限流 为了保障下游服务稳定性 通常会提前预估调用QPS 一旦超过预估QPS则可以进行限流 拒绝超出预估的请求 常见的限流算法有固定窗口

随机推荐

  • python插入单条、多条dict类型数据到clickhouse

    比如一个数据库名字叫test 表名称叫just check 插入单条dict数据 import clickhouse connect client clickhouse connect get client host 127 0 0 1 d
  • 【剑指offer】总集

    目录 前言 题目索引 数据结构 数 数据结构 数组 数据结构 字符串 数据结构 链表 数据结构 树 数据结构 队列 栈 堆 前言 想看Leetcode总集篇的点它点它 Leetcode总集篇 算法和算法题的任务目标 主要可分为 增 删 改
  • 什么是网站主服务器域名,主域名服务器是什么

    主域名服务器是什么 内容精选 换一换 香港节点和大陆节点的区别如下 香港节点购买域名后无需备案 可以直接在后台绑定域名并使用 大陆节点购买域名后需要先完成备案 才可以在后台绑定域名 香港节点支持绑定多个一级或者子域名 大陆节点只能绑定一个一
  • Linux高性能服务器编程|阅读笔记:第6章 - 高级I/O函数

    目录 简介 6 1 pipe函数 6 2 dup函数和dup2函数 6 3 readv函数和writev函数 6 4 sendfile函数 6 5 mmap函数和munmap函数 6 6 splice函数 6 7 tee函数 6 8 fcn
  • [问题解决方案]JSON parse error: Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using

    公司最近跟外部有一个接受图片的接口让我来做 我心想这么简单 又可以偷懒喽 打开文档一看图片是base64格式的 没啥 不就是base64转字节流吗 一同操作后 测试接受参数 崩出来这个东西 然后就解决呗 总不能因为解决不了让人转变发送参数的
  • 【学习笔记】Python进行数据清洗

    写在前面的话 最近看了一个up主讲基本数据清洗操作 觉得非常好 链接如下 Python 数据清洗 用Python给数据洗澡澡 数据分析 数据清洗 数据预处理 哔哩哔哩 bilibili 评论区也有原数据集和相关代码的链接 不是广告 下面就浅
  • 小程序中scroll-view的下拉刷新和小程序页面的下拉刷新开启方法

    scroll view的下拉刷新 video wxml中
  • ES6---promise详解及用法

    一 什么是Promise Promise是ES6异步编程的一种解决方案 目前最先进的解决方案是async和await的搭配 ES8 但是它们是基于promise的 从语法上讲 Promise是一个对象或者说是构造函数 用来封装异步操作并可以
  • 项目总结之angular4.0中的@viewchild,@Input,@Output

    在项目中遇到了这样一个问题 父页面中需要操作子组件里面的方法 这个时候需要怎么做呢 项目是由ionic3 0和angular4 0构成的 代码如下 child的html页面如下 div class child div class child
  • HDU--3783:ZOJ (水题)

    1 题目源地址 http acm hdu edu cn showproblem php pid 3783 2 源代码 include
  • Java HTTPS客户端如何处理证书

    HTTPS HTTP over Secure Socket Layer 简单讲即HTTP下加入SSL层 HTTPS的安全基础是SSL 参考以前的两篇文章 Java JSSE SSL TLS编程代码实例 单向认证 Java JSSE SSL
  • python-数据分析(12-时间序列)

    Pandas 12 Pandas之时间序列 12 1 时间序列 时间序列前言 时间序列数据在很多领域都是重要的结构化数据形式 比如 金融 神经科学 生态学 物理学 在多个时间点观测的数据形成了时间序列 时间序列可以是固定频率的 也可以是不规
  • 计算机专业论文 方向,计算机专业本科生方向论文题目 计算机专业本科生论文题目怎样取...

    100道 计算机专业本科生方向论文题目供您参考 希望能解决毕业生们的计算机专业本科生论文题目怎样取相关问题 选好题目那就开始写计算机专业本科生论文吧 一 比较好写的计算机专业本科生论文题目 1 对本科生计算机课程教学改革的探讨 2 浅谈对本
  • 《UNIX环境高级编程》笔记 第十三章-守护进程

    1 概念 守护进程 daemon 是生存期长的一种进程 它们常常在系统引导装入时启动 仅在系统关闭时才终止 因为它们没有控制终端 所以说它们是在后台运行的 Linux的大多数服务就是用守护进程实现的 这些守护进程名通常以d结尾 如inetd
  • ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; con

    作业背景 node mysql 附 想必各位点进来都是遇到了这个错误 我们都知道报错提示的是出问题的范围 而在范围内有着许多不确定的因素 抽象些来说就是导致脱发的原因不一定是熬夜 还有可能是压力大 焦虑 疾病等原因 问题描述 ER NOT
  • Centos离线手动安装gcc

    正常联网情况下 在Centos系统中 我们可以使用yum命令很方便的从网络自动下载和安装gcc编译器 但是 由于各种原因 在实际使用中 Centos系统系统不允许介入互联网 所以只能自己手动下载 上传至服务器 再自己安装编译器 网上可以找到
  • 云计算 第3章虚拟化技术(2)

    物理网络与虚拟网络 CPU虚拟化 CPU及指令集 CPU的操作由它所执行的指令确定 这些指令成为机器指令Machine Instruction 目前 X86服务器在企业中的部署与应用越来越广泛 X86是一个Intel通用计算机系列的编号 也
  • Sqoop使用汇总

    命令 查看数据库 sqoop list databases connect jdbc mysql 127 0 0 1 3306 username root password root 查看表 sqoop list tables connec
  • 巨详细,大电流线性电源(LDO)原理,看完你就明白了

    原文来自公众号 工程师看海 上一篇文章介绍了PMOS结构线性电源的基本工作原理 今天结合仿真介绍大电流LDO使用的NMOS 架构基本工作原理 以及其他一些重要的LDO参数 包括PSRR Dropout Voltage等 添加微信 chunh
  • 对于模式的思考

    一是确定那些知识是需要掌握的 第二则是如何掌握 Pattern无疑是需要学习的 但事实是它很容易被遗忘 却很难在实际工作中熟练地运用 方法就是将解决问题的模式与实际中某个重要的应用match起来 1 Structural Pattern D