(翻译)软件架构样式
软件架构样式
Kalyan Bandarupalli著,hystar翻译
架构样式是一套原则,你可以使用其来构建一个特定领域的典型的系统架构样式。实现软件架构样式依赖于你的组织实现架构样式的能力及基础性约束。这边文章解释了基于一种需求应该选择怎样的架构样式。
介绍
架构样式是一套原则,你可以使用其来构建一个特定领域的典型的系统架构样式。实现软件架构样式依赖于你的组织实现架构样式的能力及基础性约束。这边文章解释了基于一种需求应该选择怎样的架构样式。
架构样式
我们一种典型的做法是将多种样式组合在一起定义一个完整的架构。例如分层架构可以与基于组件的,面向对象与SOA等样式一起使用。
下面是一个常用的软件架构样式的列表。
客户端\服务器
当存在以下情况时,考虑使用这种样式
-
这个应用是基于服务器的且需要支持多个客户端。
-
你正在构建通过浏览器开放的基于Web的应用
-
你想要对数据存储,备份及管理功能中心化。
基于组件的
当遇到以下情况是考虑使用基于组件的架构
-
你的应用有特殊的需求,其不包含UI或业务处理。
-
你的应用执行存储过程这种几乎没有或者很少输入的函数
-
你要创建一个可插拔的架构,其允许你将单独的组件进行更新或替换。
分层
当遇到以下情况时可以考虑使用分层架构
-
你的应用很复杂
-
你想要提高应用的可维护性与可扩展性。
-
你的应用支持不同类型的客户端及不同的设备。
消息总线
当存在以下情况时,考虑使用这种样式
-
你现有的程序与其它程序进行交互来完成一些任务。
-
你正在实现一个需要与外部应用交互的应用
-
你正在实现一个发布者\订阅者应用
MVC架构样式
当存在以下情况时,考虑MVC样式
-
你想要提高UI的可测试性并使UI的维护更简单
-
你想要将UI元素与UI处理代码相分离
-
你的UI处理代码并未实现任何业务逻辑。
SOA
当遇到以下情况是考虑面向服务的架构样式:
-
你想要消费一个第三方暴露的服务。
-
你想要构建一个应用将一系列不同的服务组合到一个单独的UI中
-
你要创建一个SaaS(软件即服务)应用。
-
你要通过一个可发现的目录暴露服务。
本人才疏学浅,难免出现翻译错误,请不吝赐教。
出处:https://www.cnblogs.com/lsxqw2004/archive/2009/09/24/1573538.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/10534059.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2018-03-14 C#中DateTime的缺陷 ---- 代替品DateTimeOffset
2018-03-14 java打jar包的几种方式详解
2018-03-14 计算机的本质 ---- 起源
2017-03-14 谈谈敏捷开发
2017-03-14 C# 读xml注释或过滤xml注释
2014-03-14 制作一个64M的U盘启动盘(mini linux + winpe +dos toolbox)
2013-03-14 java 连接 Access数据库的两种方法