软件设计要素初探:架构模式

lovesqcc lovesqcc     2022-12-23     540

关键词:

“软件设计要素初探” 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文探讨系统组件交互的架构模式。

架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构。组件化是使用架构模式的前提。 可参阅 《面向模式的软件架构》了解更多架构模式。

分层模式

  • 分层模式: 将应用划分为多个层次,定义各层的接口、任务抽象及消息格式,以及各层之间的通信与交互。业务系统通常会划分为业务逻辑层、服务层、领域层、数据层。网络栈协议是分层模式的典型应用。应用分层模式时,为确保系统可维护性,通常第j+1层只依赖于第j层的接口和服务;在性能场合下,可能会有跨层依赖的情况;应对特殊场景的设计中,会有“第j层的服务依赖于第j+1层的服务”的反向依赖关系。可参阅《面向模式的软件架构:模式系统》第2.2.1节。

RESTFUL模式

  • RESTFul模式:适合资源构建与共享的可伸缩的架构模式,适合于构建API接口。全局规范一致的资源逻辑命名、寻址、返回码定义,关注资源与数据而非行为或服务;无状态的声明式的请求;对客户端隐藏实现细节;通用的数据返回格式(JSON),跨语言与平台;使用名词而非动词作为路径名。 可参阅《架构之美》第5章:“Web:面向资源的架构”。

MVC模式

  • MVC模式:“模型-视图-控制”, 经典的WebUI架构模式,控制处理请求从而更新模型和返回视图,模型更新驱动视图更新,视图请求控制处理。经典的JavaMVC框架有 Struts2, SpringMVC, 前端MVC框架有Extjs4.

插件模式

  • 插件模式:设计了可扩展的插件接口及插件交互机制,开发者只要遵循规范编写和调试具体的插件并融入到系统,即可为系统增加新功能和新特性。使用插件模式的系统有 Eclipse, Emacs, Firefox, Chrome 等。

订阅-消费模式

  • 订阅-消费模式: 大型互联网应用中几乎都存在订阅和消费业务表更新或业务消息推送的子系统。订阅-消费模式需要高稳定可用的消息中间件,并仔细评估消息延迟对用户活动造成的影响。新品消息推送、商品消费订阅、发货提醒等,我们正处于一个“消息/通知的订阅-推送-被消费”的移动互联网时代里。

Pipeline模式

  • 管道-过滤器-处理器链:一个请求沿着管道连接的处理链,依次由链上的过滤器、拦截器、处理器进行处理并返回。JavaWeb应用的Servlet架构模式是“过滤器-处理器链”的典型应用;UnixShell 则是“管道-过滤器-重定向”结构的典型应用。

事件驱动模式

  • 事件驱动模式: 在系统内定义一系列的组件、事件及监听器,组件发生变化时触发事件,通知相应的监听器处理事件更新组件,进而触发新的事件,如此循环直至手动终止系统或系统崩溃。适用于GUI应用开发。

Actor模式

规则-工作流模式

软件设计要素初探:软件设计的一些子主题

在“软件设计要素初探”一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文主要探讨一些稍小的设计子主题,主要包括:错误处理、结构性难题、整体与兼容、设计取舍、设计与重构、设计与质量、设计... 查看详情

软件设计要素初探:组件化思想

在“软件设计要素初探”一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文讨论用于系统划分的组件化思想。概述将整个系统划分为若干正交的紧密关联的子系统,以及高内聚低耦合的小而美的模块与微... 查看详情

初探java设计模式4:jdk中的设计模式

...设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应软件不断变化二、学习JDK中设计模式的好处(1)借鉴优秀代码的设计,有助于提高代码设计能力(2)JDK的设计中体现了大多数设计模式,是学习设... 查看详情

初探设计模式5:spring涉及到的9种设计模式

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想... 查看详情

大型网站架构设计方向初探

...型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是 查看详情

软件架构软件框架设计模式

...架构:框架比架构更具体,更偏重技术,一旦框架确定,软件架构也随之确定。五.设计模式与框架:框架是软件,模式是软件的知识体,提升框架的设计水平。六.常见设计模式:推荐书籍《设计模式— 查看详情

designpattern-设计原则与设计模式初探

...;所以在学习设计模式之前,有必要了解一下设计原则软件设计开发原则为了让代码有更好的重用性,可读性,可靠性,可维护性有六大原则,英文首字母拼在一起就是SOLID(稳定的) 查看详情

常见的5个软件架构模式

    企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构,这个架构将决定软件实施过程中的功能属性和质量属性。因此,了解软件设计中的不同架构模式对我们的软件设计会有较... 查看详情

架构_10个常用的软件架构模式(代码片段)

...是否曾经思考过如何设计大型的企业级系统?在决定启动软件开发之前,首要的是选择恰当的架构来指引系统的功能及质量属性设计。因此在将软件架构应用于设计之前,必需要了解常用的架构模式。什么是架构模式?Wikipedia的... 查看详情

设计模式与软件原则:solid原则(代码片段)

设计模式与软件原则(DesignPatternsandSoftwarePrinciples)GangofFour在其书《设计模式:可重用面向对象软件的要素》(ElementsofReusableObject-OrientedSoftware)中,将设计模式大致分为三种类型:Creational-处理实体创... 查看详情

软考系统架构设计师简明教程|系统设计

>>回到总目录<<文章目录人机界面设计练习题软件设计练习题结构化设计结构化设计的划分结构化设计的原则模块独立保持模块的大小适中多扇入少扇出深度和宽度均不宜过高模块要素面向对象设计设计原则练习题模式... 查看详情

架构,框架和设计模式的区别

...)。  具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。  而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的designdecision。一般好的(静态)架构可以尽量使变化发生在局部(模块内... 查看详情

初探设计模式——工厂模式

从今天起,打算系统学习一下设计模式,先从工厂模式开始,本系列的文章只是对设计模式初步学习的总结,如有写的不对的地方欢迎指正。什么是工厂模式呢?所谓工厂在我们的日常生活中就是生产产品的地方,如汽车工厂,... 查看详情

ddd「领域驱动设计」分层架构初探(代码片段)

前言基于DDD传统分层架构实现。项目github地址:https://github.com/WuMortal/DDDSample这个分层架构是工作中项目正在使用的分层架构,使用了一段时间发现受益匪浅,所以整理好我对该分层架构的一些理解分享给大家,我对于该分层架... 查看详情

高并发大访问量架构设计演进之路归纳总结

...奇心,工程技术,产生价值赚钱(科学研究不同)扎实的软件技术基础:操作系统,数据结构,设计模式,编程语言,出色的编程能力:优秀的代码深刻领悟主流技术产品模式;互联网架构的关键技术:缓存,异步,分布互联网... 查看详情

软件设计模式概述

...以千百遍地被重复使用。核心思想是进行设计复用。  软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的成功解决方案的描述。软件设计模式通常包含四个基本要素:  模式名称,问题,解决方... 查看详情

软件架构之23种设计模式

原文:软件架构之23种设计模式创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。... 查看详情

app系统架构设计初探

一,图片体验的优化。    在手机上显示图片,速度是一个非常重要的体验点,试想,如果您打开一个网站,发现里面的图片一直显示失败或者是x,稍微做得好一点的,可能是一个不消失的loading或者是菊花等等,... 查看详情