那些常用的设计模式汇总
Paige 2019-11-20 来源 : 阅读 1184 评论 0

摘要:企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构。

企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构。因此,了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。


那些常用的设计模式汇总


软件架构模式

什么是架构模式?根据维基百科:架构模式是针对特定软件架构场景常见问题的通用、可重用解决方案。架构模式类似于软件设计模式,但范围更广。


分层模式

此模式用于可分解为子任务的结构化程序,每个子任务都位于特定的抽象层级,每一层都为上一层提供服务。

表最常见的

应用层(也称为服务层)

业务逻辑层(也称为领域层)

数据访问层(也称为持久层)

表最常见的

应用层(也称为服务层)

业务逻辑层(也称为领域层)

数据访问层(也称为持久层)


客户端-服务器模式

这种模式由两部分组成:服务器和多个客户端。服务器将向多个客户端提供服务。客户端从服务器请求服务,服务器向这些客户端提供相关服务。此外,服务器继续侦听客户端请求。


应用场景

1、电子邮件、文档共享和银行等在线应用程序。

2、基于IPC的应用程序


主从模式

这种模式由两部分组成:主节点和从节点。主节点将工作分配给相同的从节点,并根据从节点返回的结果计算最终结果。


应用场景

1、在数据库复制中,主数据库被视为权威源数据库,从数据库与之同步。

2、通过总线连接到计算机系统(主驱动器和从驱动器)的外围设备。

3、进程内的多线程应用。


管道-过滤器模式

这种模式可用于构造生成和处理数据流的系统。每个处理步骤都包含一个过滤器组件。要处理的数据通过管道传递。这些管道可用于缓冲或同步目的。


应用场景

1、编译器。连续过滤器执行词法分析、词法解析、语义分析和代码生成。

2、生物信息学的工作流

3、工具链式的应用程序


代理模式

这种模式通过解耦组件来构造分布式系统。这些组件可以通过远程服务调用彼此交互。代理组件负责协调组件之间的通信。服务器向代理发布功能(服务和特征)。客户端向代理请求服务,然后代理将客户端重定向到合适的服务。需要注意broker,agent,proxy以及delegate的区别。


应用场景

1、消息代理软件,例如:Apache ActiveMQ、Apache Kafka、RabbitMQ和JBoss消息传递。

2、网络传输中的代理软件。


其实还有很多我们在用而不是很清楚的设计模式,除了以上模式,我们就来看下常用的工厂设计模式。


简单工厂模式

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。


工厂模式

工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。


抽象工厂模式

抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。

当抽象工厂模式中每一个具体工厂类只创建一个产品对象,也就是只存在一个产品等级结构时,抽象工厂模式退化成工厂方法模式;当工厂方法模式中抽象工厂与具体工厂合并,提供一个统一的工厂来创建产品对象,并将创建对象的工厂方法设计为静态方法时,工厂方法模式退化成简单工厂模式。


本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

专注专心完成每位候选人和客户的需求,您满意我开心!

  • 1
    推荐岗位
  • 2432
    人气
  • 100%
    受欢迎度

已有1人表明态度,100%喜欢该职业规划老师!

进入TA的空间
资讯动态 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
戈尔的文化秘诀
就业趋势 100% 的用户喜欢
互联网创始人:我发明了它,但是我现在后悔了
就业趋势 0% 的用户喜欢
2020年IT行业在物联网中的发展趋势是什么?
就业趋势 0% 的用户喜欢
6G已经开始研发,速率是5G的10至100倍!!
就业趋势 0% 的用户喜欢
一键Get,Web前端开发应该必备的编码原则
就业趋势 0% 的用户喜欢

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程