首页
课程
优势
师资
校区
评价
问答
环境
那些常用的设计模式汇总
251人已阅读
2021-09-01 16:57:01
导读
今天,我们来讲讲那些常用的设计模式汇总,一起来看看吧!企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构。因此,了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。
成都职坐标
5分
1个校区
2429人咨询
进入官方主页
课
IT培训
新闻详情
2021-09-01 16:57:01
今天,我们来讲讲那些常用的设计模式汇总,一起来看看吧!企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构。因此,了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。
那些常用的设计模式汇总
软件架构模式
什么是架构模式?根据维基百科:架构模式是针对特定软件架构场景常见问题的通用、可重用解决方案。架构模式类似于软件设计模式,但范围更广。
分层模式
此模式用于可分解为子任务的结构化程序,每个子任务都位于特定的抽象层级,每一层都为上一层提供服务。
表最常见的
应用层(也称为服务层)
业务逻辑层(也称为领域层)
数据访问层(也称为持久层)
表最常见的
应用层(也称为服务层)
业务逻辑层(也称为领域层)
数据访问层(也称为持久层)
客户端-服务器模式
这种模式由两部分组成:服务器和多个客户端。服务器将向多个客户端提供服务。客户端从服务器请求服务,服务器向这些客户端提供相关服务。此外,服务器继续侦听客户端请求。
应用场景
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模式,属于对象创建型模式。
当抽象工厂模式中每一个具体工厂类只创建一个产品对象,也就是只存在一个产品等级结构时,抽象工厂模式退化成工厂方法模式;当工厂方法模式中抽象工厂与具体工厂合并,提供一个统一的工厂来创建产品对象,并将创建对象的工厂方法设计为静态方法时,工厂方法模式退化成简单工厂模式。
上一篇:
程序员如何抗住双11高并发流量
下一篇:
你必须知道的Pandas技巧
相关文章
说说那些程序员必须掌握的核心算法!
2021-09-01
这三个数据结构帮你伪装成*程序员!
2021-09-01
程序员的未来:选择管理还是架构?
2021-09-01
你必须知道的Pandas技巧
2021-09-01
那些常用的设计模式汇总
2021-09-01
程序员如何抗住双11高并发流量
2021-09-01
Web前端开发应该必备的编码原则
2021-09-01
没有学历可以做程序员吗?
2021-09-01
企业如何升级IT人才战略
2021-08-31
推荐课程
ISTQB认证
人气:291
软件测试培训
人气:246
Java开发课程
人气:198
成都Scratch学科编程课程
人气:346
成都AppInventor手机开发课程
人气:332
红帽RHCA直通车课程
人气:151
查看全部课程
成都职坐标
网课校区
查看全部校区
进入官方主页