架构设计-初学篇

1.架构模式

        架构模式是针对特定问题的可复用解决方案,它通过特定的结构组合提升某方面的质量属性。选择合适的架构模式解决问题就不用从零开始设计架构,从而避开诸多导致麻烦的陷阱。以下三种是常见的架构模式。

1.1三层模式

      每一层完成不同的任务。对web 应用来说,展现层负责U渲染,业务层运行于服务器端负责验证业务规则,数据库负责存储数据。

1.2发布-订阅模式

       所有元素都将消息发布到事件总线上。组件可以订阅感兴趣的消息。事件可能不按顺序传送,也不确保传送成功(视消息系统的规则而定)。

1.3面向服务架构模式

       服务都在中央注册表注册,以便调用者可以找到它们。组件查找并直接调用这些服务,服务响应并回复信息(出现问题则不响应)。

1.4如何选择不同的模式?

        三种模式分别提升和抑制了不同的质量属性。你会如何选择?

        多数情况下,三层模式最理想。它易于测试、部署、描述。不过这种简单性是有代价的。三层模式很难提升可伸缩性和可用性等质量属性。如果不在架构中补充其他模式,三层模式可能无法满足我们的所有需求。
       发布-订阅模式具有较高的可更改性和灵活性。虽然这种灵活性很适合构建松耦合系统,但它也有缺点。在我们的数据驱动应用中,消息顺序对事件有影响,仅靠发布-订阅模式不能保证正确的消息顺序。如果选用合适的消息总线技术,也能让发布-订阅模式勉强工作,但不够干净利索。
       面向服务的架构具有可更改、灵活、可测试的特点,同时它也易于扩展,比其他模式更容易提升可用性。但它是三种模式中最复杂的,架构设计的工作量最大。我们的应用采用这种模式有点小题大做了。
      这三种模式都可以用来实现我们的功能需求,选择架构模式关键要看质量属性。针对既定质量属性,要分出各种模式的优劣,我们还需要做进一步的分析。

2. 架构图分类

2.1 按业务划分

2.1.1 业务架构(按业务划分)

2.2 按领域(后端)划分

ps:此处只讨论后端,不讨论客户端和前端

2.2.1 系统/后端架构(按模块划分)

2.2.2 应用架构(按应用划分)

2.2.3 按组件划分(部署架构)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MVC(Model-View-Controller)是一种软件架构模式,它将一个应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller),以此实现应用程序的松耦合,使得代码的复用和维护更加容易。 下面以一个选课管理系统为例,介绍MVC架构的基本使用方法。 1. 模型(Model) 模型是应用程序的数据和业务逻辑部分,它负责处理应用程序的数据和数据操作,同时也包括一些业务逻辑的处理。在选课管理系统中,模型可以包括学生信息、课程信息、选课记录等数据操作,同时也包括一些业务逻辑的处理,如选课冲突检查、选课人数限制等。 2. 视图(View) 视图是应用程序的用户界面部分,它负责展示应用程序的数据和处理结果。在选课管理系统中,视图可以包括学生信息、课程信息、选课记录的展示页面,同时也包括一些操作页面,如选课页面、退课页面等。 3. 控制器(Controller) 控制器是应用程序的业务逻辑处理部分,它负责将模型和视图进行协调,处理用户请求和响应。在选课管理系统中,控制器负责处理用户的选课请求、退课请求等,同时也负责将模型中的数据展示到视图上。 在实现选课管理系统时,我们可以按照MVC架构的思路进行开发。首先,我们需要定义好模型中的数据结构和业务逻辑处理方法;其次,我们需要实现视图的展示页面和操作页面;最后,我们需要编写控制器,将模型和视图进行协调,处理用户请求和响应。 总体来说,MVC架构的优点在于它能够将应用程序的各个部分分离,使得代码的复用和维护更加容易,同时也能够提高应用程序的可扩展性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冲鸭的猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值