鱼C论坛

 找回密码
 立即注册
查看: 159|回复: 11

请按要求详细总结一下框架结构和软件架构。

[复制链接]
发表于 2025-3-18 19:10:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
框架结构(如MVC、MVVM、MVP、MTV等等)和软件架构(如三层架构、微服务架构、响应式架构、SOA、领域驱动设计(DDD)等等)。
现在要求,详尽总结出每一种框架结构和软件架构的核心部分(分层组件),以及各自对应的典型框架/技术。
比如,MVC框架结构的七个核心部分:入口、控制器、配置文件、业务逻辑、数据访问、实体类和其他辅助功能等等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-18 19:11:07 | 显示全部楼层
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

---

框架结构

  • MVC(Model-View-Controller)
      - 核心部分:
        - 入口(前端路由或后端路由)
        - 控制器(Controller)
        - 视图(View)
        - 模型(Model)
        - 配置文件
        - 业务逻辑层
        - 数据访问层
      - 典型框架/技术:
        - 后端:Spring MVC(Java)、ASP.NET MVC(C#)、Django(Python)、Ruby on Rails(Ruby)
        - 前端:Angular、React(部分遵循MVC思想)
  • MVVM(Model-View-ViewModel)
      - 核心部分:
        - 视图(View)
        - 视图模型(ViewModel)
        - 模型(Model)
        - 数据绑定(双向绑定)
      - 典型框架/技术:
        - Vue.js、Knockout.js、WPF(C#)、Android Jetpack(Data Binding)
  • MVP(Model-View-Presenter)
      - 核心部分:
        - 视图(View)
        - 演示者(Presenter)
        - 模型(Model)
      - 典型框架/技术:
        - Android(早期开发模式)、GWT(Google Web Toolkit)
  • MTV(Model-Template-View)
      - 核心部分:
        - 模型(Model)
        - 模板(Template)
        - 视图(View)
      - 典型框架/技术:
        - Django(Python)



---

软件架构

  • 三层架构(Three-Tier Architecture)
      - 核心部分:
        - 表现层(UI 层)
        - 业务逻辑层(BLL)
        - 数据访问层(DAL)
      - 典型框架/技术:
        - Java EE、ASP.NET、Spring Framework
  • 微服务架构(Microservices Architecture)
      - 核心部分:
        - API 网关
        - 服务注册与发现
        - 负载均衡
        - 业务服务(多个独立的微服务)
        - 数据存储(每个微服务可有独立数据库)
      - 典型框架/技术:
        - Spring Boot + Spring Cloud、Docker、Kubernetes、gRPC、Istio
  • 响应式架构(Reactive Architecture)
      - 核心部分:
        - 事件驱动
        - 非阻塞 I/O
        - 消息队列
        - 反应式流(Reactive Streams)
      - 典型框架/技术:
        - Akka(Scala)、RxJava、Project Reactor(Spring WebFlux)
  • 面向服务架构(SOA,Service-Oriented Architecture)
      - 核心部分:
        - 服务提供者(Service Provider)
        - 服务消费者(Service Consumer)
        - 服务注册中心(Service Registry)
        - 消息总线(Enterprise Service Bus,ESB)
      - 典型框架/技术:
        - Apache CXF、WSO2、IBM WebSphere
  • 领域驱动设计(DDD,Domain-Driven Design)
      - 核心部分:
        - 领域层(Domain Layer)
        - 应用层(Application Layer)
        - 基础设施层(Infrastructure Layer)
        - 用户接口层(User Interface Layer)
      - 典型框架/技术:
        - Spring Boot + DDD、Axon Framework、Event Sourcing



以上是常见的框架结构和软件架构的详细总结,希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-18 19:18:50 | 显示全部楼层
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

--- ...

请在上述回答的基础上继续补充一下SSM框架(Spring MVC+Spring+MyBatis),以及类似遗漏了的其他框架结构和软件架构。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-18 19:19:14 | 显示全部楼层
ultron110 发表于 2025-03-18 19:18
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构 ...


以下是对 **SSM 框架(Spring MVC + Spring + MyBatis)** 以及其他可能遗漏的框架结构和软件架构的补充。  

---

### **SSM 框架(Spring MVC + Spring + MyBatis)**
**核心部分:**  
- **Spring MVC(表现层)**:处理 HTTP 请求,负责路由、控制器、视图解析等。  
- **Spring(业务逻辑层)**:管理 Bean、事务控制、AOP(面向切面编程)等。  
- **MyBatis(数据访问层)**:简化数据库操作,提供 SQL 映射和 ORM(对象关系映射)。  
- **配置文件**:Spring 配置(XML 或 Java 配置)、MyBatis 配置(XML 或注解)。  
- **实体类(Model)**:数据库表对应的 Java 对象。  
- **Service 层**:封装业务逻辑,调用 DAO 层。  
- **DAO 层(数据访问对象)**:使用 MyBatis 进行数据库操作。  

**典型技术栈:**  
- **Spring MVC**:用于 Web 层控制器。  
- **Spring**:用于依赖注入(DI)、AOP、事务管理。  
- **MyBatis**:用于数据库访问。  
- **Spring Boot**(可选):简化 SSM 配置,提供自动化配置。  

---

### **其他遗漏的框架结构和软件架构**

#### **六边形架构(Hexagonal Architecture)**
**核心部分:**  
- **应用核心(Application Core)**:包含业务逻辑。  
- **端口(Ports)**:定义输入/输出接口。  
- **适配器(Adapters)**:实现端口,连接外部系统(如数据库、消息队列、API)。  
- **基础设施(Infrastructure)**:数据库、外部 API、消息队列等。  

**典型技术栈:**  
- Spring Boot + DDD  
- Quarkus  
- Micronaut  

---

#### **整洁架构(Clean Architecture)**
**核心部分:**  
- **实体(Entities)**:核心业务逻辑。  
- **用例(Use Cases)**:应用服务,调用实体执行业务逻辑。  
- **接口适配器(Interface Adapters)**:控制器、视图、数据库适配器等。  
- **框架和驱动(Frameworks & Drivers)**:Web 框架、数据库、外部 API。  

**典型技术栈:**  
- Spring Boot + DDD  
- NestJS(Node.js 框架)  
- .NET Core  

---

#### **CQRS(命令查询职责分离)**
**核心部分:**  
- **命令模型(Command Model)**:处理写操作(增删改)。  
- **查询模型(Query Model)**:处理读操作(查询)。  
- **事件总线(Event Bus)**:用于同步命令和查询模型。  

**典型技术栈:**  
- Axon Framework(Java)  
- MediatR(.NET)  
- EventStore  

---

#### **事件驱动架构(EDA,Event-Driven Architecture)**
**核心部分:**  
- **事件生产者(Event Producer)**:触发事件。  
- **事件总线(Event Bus)**:传递事件。  
- **事件消费者(Event Consumer)**:监听并处理事件。  

**典型技术栈:**  
- Kafka、RabbitMQ、ActiveMQ  
- Spring Cloud Stream  
- Apache Pulsar  

---

这些补充涵盖了 **SSM 框架** 以及其他常见的 **软件架构模式**,希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-18 20:06:38 | 显示全部楼层
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

--- ...

你给的这回答,Struts框架的位置在哪?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-18 20:06:53 | 显示全部楼层
ultron110 发表于 2025-03-18 20:06
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构 ...


Struts 框架属于 **MVC(Model-View-Controller)** 结构的一部分,它是一个基于 Java EE 的 Web 框架,主要用于构建 Java Web 应用程序。  

### **Struts 框架(基于 MVC)**  
**核心部分:**  
- **入口(Front Controller)**:`ActionServlet` 作为前端控制器,拦截请求并分发到相应的 `Action` 处理类。  
- **控制器(Controller)**:`Action` 类,负责处理业务逻辑并返回视图。  
- **视图(View)**:JSP 页面,使用 `Struts Tag Library` 进行数据展示。  
- **模型(Model)**:JavaBean 或 POJO,封装业务逻辑和数据。  
- **配置文件**:`struts-config.xml`,用于定义 `Action` 映射、表单验证、拦截器等。  
- **业务逻辑层**:通常结合 Spring 或 EJB 进行业务逻辑处理。  
- **数据访问层**:可以使用 Hibernate、JDBC 或 MyBatis 进行数据库操作。  

**典型技术栈:**  
- **Struts 1**(已过时)  
- **Struts 2**(改进版,支持拦截器、OGNL 表达式、类型转换等)  
- **Spring + Struts**(结合 Spring 进行依赖注入和事务管理)  
- **Struts + Hibernate**(用于数据持久化)  

Struts 主要用于 **Java Web 开发**,但由于 Spring MVC 的流行,Struts 的使用率逐渐下降。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-18 20:10:50 | 显示全部楼层
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

--- ...

你的这个回答,Hibernate框架的位置呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-18 20:11:09 | 显示全部楼层
ultron110 发表于 2025-03-18 20:10
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构 ...


Hibernate 框架属于 **ORM(对象关系映射)框架**,主要用于 **数据访问层(DAL)**,通常与 **MVC 结构** 或 **三层架构** 结合使用。  

### **Hibernate 框架(ORM 框架)**  
**核心部分:**  
- **实体类(Entity)**:使用 JPA 注解(如 `@Entity`、`@Table`)映射数据库表。  
- **会话工厂(SessionFactory)**:管理 Hibernate `Session`,提供数据库连接。  
- **会话(Session)**:执行数据库操作,如 `save()`、`update()`、`delete()`。  
- **事务管理(Transaction)**:确保数据库操作的原子性。  
- **查询语言(HQL/Criteria API)**:Hibernate Query Language(HQL)用于查询数据库。  
- **配置文件(hibernate.cfg.xml)**:定义数据库连接信息、映射文件等。  
- **持久化上下文(Persistence Context)**:管理实体对象的生命周期。  

**典型技术栈:**  
- **Hibernate + Spring**(Spring Data JPA)  
- **Hibernate + Struts**(早期 Java Web 组合)  
- **Hibernate + MyBatis**(部分项目结合使用)  
- **JPA(Java Persistence API)**(Hibernate 是 JPA 的实现之一)  

Hibernate 主要用于 **数据持久化**,在 **Spring Boot** 生态中,通常通过 **Spring Data JPA** 进行集成。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-18 20:16:24 | 显示全部楼层
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

--- ...

你的这回答为什么没包括ORM框架?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-18 20:16:40 | 显示全部楼层
ultron110 发表于 2025-03-18 20:16
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构 ...


你说得对,Hibernate 属于 **ORM(对象关系映射)框架**,我会补充完整的 **ORM 框架** 相关内容。  

---

### **ORM 框架(对象关系映射框架)**  
ORM 框架的主要作用是 **将面向对象的编程语言(如 Java、Python、C#)中的对象映射到数据库表**,简化数据库操作,减少手写 SQL,提高开发效率。  

#### **核心部分(分层组件):**  
- **实体类(Entity)**:映射数据库表的 Java/对象类,通常使用注解或 XML 配置。  
- **会话管理(Session/EntityManager)**:管理数据库连接,执行增删改查操作。  
- **事务管理(Transaction)**:确保数据库操作的原子性。  
- **查询语言(HQL、JPQL、Criteria API)**:提供面向对象的查询方式,避免直接使用 SQL。  
- **缓存机制(Cache)**:支持一级缓存(Session 级别)和二级缓存(全局缓存)。  
- **数据映射(Mapping)**:支持一对一、一对多、多对多等关系映射。  
- **配置文件**:定义数据库连接、实体映射、缓存策略等。  

#### **典型 ORM 框架及技术:**  
- **Hibernate(Java)**:最流行的 Java ORM 框架,支持 JPA 规范。  
- **JPA(Java Persistence API)**:Java 官方的 ORM 规范,Hibernate 是其实现之一。  
- **MyBatis(Java)**:半 ORM 框架,支持 SQL 映射,适用于复杂 SQL 需求。  
- **Entity Framework(C#/.NET)**:微软提供的 ORM 框架,支持 LINQ 查询。  
- **SQLAlchemy(Python)**:Python 生态中的 ORM 框架,支持多种数据库。  
- **Django ORM(Python)**:Django 框架自带的 ORM,简化数据库操作。  
- **ActiveRecord(Ruby on Rails)**:Ruby 生态中的 ORM,支持数据库迁移。  

---

### **ORM 框架在不同架构中的位置**  
- **在 MVC 结构中**:ORM 主要用于 **Model 层**,负责数据持久化。  
- **在三层架构中**:ORM 主要用于 **数据访问层(DAL)**,封装数据库操作。  
- **在微服务架构中**:ORM 结合 **Spring Data JPA** 或 **MyBatis** 进行数据库访问。  

这样,ORM 框架的内容就更加完整了,希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-18 20:19:18 | 显示全部楼层
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构和软件架构的详细总结,包括其核心部分(分层组件)以及对应的典型框架/技术。

--- ...

除了ORM框架,一共还遗漏了哪些框架?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-18 20:20:00 | 显示全部楼层
ultron110 发表于 2025-03-18 20:19
FishC 发表于 2025-3-18 19:11
以下是常见的框架结构 ...


在之前的回答中,我们已经涵盖了 **MVC、MVVM、MVP、MTV** 等框架结构,以及 **三层架构、微服务架构、SOA、DDD、CQRS、事件驱动架构(EDA)、六边形架构、整洁架构** 等软件架构。同时,我们补充了 **SSM(Spring MVC + Spring + MyBatis)、Struts、Hibernate(ORM 框架)**。  

但仍然有一些 **常见的框架结构和软件架构** 没有提及,以下是遗漏的部分:  

---

### **遗漏的框架结构**  

#### **1. PAC(Presentation-Abstraction-Control)架构**  
- **核心部分:**  
  - **Presentation(表现层)**:负责用户交互。  
  - **Abstraction(抽象层)**:封装业务逻辑。  
  - **Control(控制层)**:管理数据流和交互逻辑。  
- **典型框架/技术:**  
  - 主要用于 **嵌入式系统、GUI 应用**(如 Smalltalk 语言的 UI 设计)。  

#### **2. FLUX(单向数据流架构)**  
- **核心部分:**  
  - **Action(动作)**:触发状态变更。  
  - **Dispatcher(分发器)**:协调数据流。  
  - **Store(存储)**:管理应用状态。  
  - **View(视图)**:监听 Store 并更新 UI。  
- **典型框架/技术:**  
  - **Redux(React 生态)**、Vuex(Vue 生态)、NgRx(Angular 生态)。  

#### **3. VIPER(iOS 开发架构)**  
- **核心部分:**  
  - **View(视图)**:UI 层。  
  - **Interactor(交互器)**:处理业务逻辑。  
  - **Presenter(演示者)**:连接 View 和 Interactor。  
  - **Entity(实体)**:数据模型。  
  - **Router(路由)**:管理页面跳转。  
- **典型框架/技术:**  
  - **Swift + VIPER**(iOS 开发)。  

---

### **遗漏的软件架构**  

#### **4. 主从架构(Master-Slave Architecture)**  
- **核心部分:**  
  - **Master(主节点)**:处理写操作,并同步数据到从节点。  
  - **Slave(从节点)**:处理读操作,提高查询性能。  
- **典型框架/技术:**  
  - **MySQL 主从复制、Redis 主从架构、Kafka 副本机制**。  

#### **5. 共享数据库架构(Shared Database Architecture)**  
- **核心部分:**  
  - **单一数据库**,多个服务共享访问。  
- **典型框架/技术:**  
  - 适用于 **单体架构(Monolithic Architecture)**,如 **Spring Boot + MySQL**。  

#### **6. 分片架构(Sharding Architecture)**  
- **核心部分:**  
  - **数据分片(Sharding)**:将数据拆分到多个数据库实例。  
  - **分片路由(Sharding Router)**:决定查询哪个分片。  
- **典型框架/技术:**  
  - **ShardingSphere、MySQL 分库分表、MongoDB 分片**。  

#### **7. 无服务器架构(Serverless Architecture)**  
- **核心部分:**  
  - **FaaS(函数即服务)**:按需执行代码。  
  - **BaaS(后端即服务)**:提供数据库、身份验证等服务。  
- **典型框架/技术:**  
  - **AWS Lambda、Google Cloud Functions、Azure Functions**。  

---

### **总结**  
除了 **ORM 框架** 之外,遗漏的框架还包括:  
- **框架结构**:PAC、FLUX、VIPER。  
- **软件架构**:主从架构、共享数据库架构、分片架构、无服务器架构。  

这些架构在不同的应用场景下发挥着重要作用,希望这次的补充能让内容更加完整!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-4 01:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表