为什么要做代码分层架构?

软件程序通常有两个层面的需求:

  • 功能性需求,简单来说,就是一个程序能为用户做些什么,比如,文件上传、查询数据等;

  • 非功能性需求,这个是指除功能性需求以外的其他必要需求,比如,性能、安全性、容错与恢复、本地化、国际化等。

事实上,非功能性需求所构建起来的正是我们所熟知的软件架构。什么是软件架构?简单来说,就是软件的基本结构,包括三要素:代码、代码之间的关系和两者各自的属性。

我们都知道,软件架构非常重要,为什么重要呢?如果把软件比作一座高楼,那么软件架构就是那个钢筋混凝土的框架,代码就是那个框架里的砖石,正是因为有了那个框架,才能让每一个代码都能很好地运行起来。

其中,最为经典的软件架构就是分层架构,也就是将软件系统进行分层,现在几乎已经成为每个程序员最熟悉的思考模式之一。不过,分层架构越是流行,我们的设计越容易僵化。这背后到底有哪些值得我们深思的地方呢?

今天就从架构角度来聊聊为什么代码要做分层、主要用于解决什么问题,以及存在优势和劣势有哪些。

一、代码分层架构是什么?

要想彻底理解代码分层架构,就得从软件部署分层架构说起。首先我们来看一下常见的互联网软件部署分层架构,如下图所示: 由图可以看到,软件部署分层架构主要包括以下四个核心部分。

  • 客户端层(Client):调用方,比如浏览器或 App。

  • 应用服务层的网页服务器(Web Server):实现程序的运行逻辑,并从下层获取数据,返回给上层的客户端层。

  • 应用服务层的缓存(Cache):加速访问存储的数据。

  • 数据层(DB)ÿ

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个基于分层架构代码示例: 表示层: ```python # user_interface.py class UserInterface: def __init__(self, controller): self.controller = controller def get_user_input(self): user_input = input("请输入数据:") return user_input def show_output(self, output): print(f"输出结果:{output}") ``` 业务逻辑层: ```python # business_logic.py class BusinessLogic: def __init__(self, data_access): self.data_access = data_access def process_data(self, user_input): # 处理数据 processed_data = user_input.upper() # 调用数据访问层的接口保存数据 self.data_access.save_data(processed_data) return processed_data ``` 数据访问层: ```python # data_access.py class DataAccess: def __init__(self): self.data = [] def save_data(self, data): self.data.append(data) ``` 控制器层: ```python # controller.py class Controller: def __init__(self, user_interface, business_logic): self.user_interface = user_interface self.business_logic = business_logic def run(self): user_input = self.user_interface.get_user_input() processed_data = self.business_logic.process_data(user_input) self.user_interface.show_output(processed_data) ``` 在这个示例中,表示层包含用户界面和用户界面控制器,业务逻辑层包含业务逻辑组件和业务对象,数据访问层包含数据访问组件和数据访问对象。控制器层负责将各个层次组织起来,通过调用其他层次的接口来完成整个程序的功能。通过分层架构,不同的层次之间相互独立,易于维护和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我爱娃哈哈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值