
软件架构
文章平均质量分 64
许野平
非常喜欢软件设计这份工作,有不错的数学基础,喜欢读书、摄影与音乐。
展开
-
三层设计架构,数据层对表现层的不可见性意味着数据类型定义不可见吗?
在三层设计架构中,数据层(通常也称为数据访问层或DAL)对表现层(UI层)的“不可见性”主要指的是数据层的具体实现细节,包括数据访问逻辑、数据库连接字符串、SQL查询语句等,以及数据层的变量和函数(除非通过业务逻辑层进行间接访问)对表现层是不可见的。然而,数据类型定义(如实体类、数据传输对象DTO等)通常是可以在各层之间共享的。这些定义提供了数据在不同层次之间传递的结构和格式,使得业务逻辑层可以将数据从数据层传递到表现层,或者将表现层的数据传递到业务逻辑层进行处理,然后再传递到数据层进行存储。原创 2025-01-06 16:38:27 · 307 阅读 · 0 评论 -
多层设计模式:可否设计各层之间公用的数据定义模块?
在多层程序设计模式中,可以设计一个各层之间公用的数据类型定义模块。这种模块通常被称为“公共模块”或“共享模块”,它包含所有层都需要使用的数据类型定义。这有助于确保数据在不同层之间传递时的一致性和准确性。通过设计一个各层之间公用的数据类型定义模块,可以提高多层程序设计模式的可维护性、可扩展性和可重用性。这有助于确保数据在不同层之间传递时的一致性和准确性,同时减少层之间的依赖和复杂性。原创 2025-01-03 18:40:55 · 531 阅读 · 0 评论 -
SOLID:软件系统设计的五个基本原则
例如,单一职责原则可以指导我们使用策略模式来将不同的算法封装在独立的类中,从而使得它们可以互相替换。:在软件中,如果 S 是 T 的子类型,那么程序中使用 T 类型的对象的地方都可以用 S 类型的对象来替换,而不会改变程序的期望行为。这意味着代码应该依赖于接口或抽象类,而不是具体的实现类,从而提高系统的可维护性和可扩展性。也就是说,新的功能应该通过添加新代码来实现,而不是修改现有的代码。总之,SOLID 原则并不是五种设计模式,而是一套指导面向对象设计和编程的原则,有助于我们更好地选择和实施设计模式。原创 2024-06-27 15:56:46 · 501 阅读 · 1 评论 -
基于事件的架构工作机制和相关产品
同样,事件的接收者(消费者)也不需要知道事件是从哪里来的,它只需要关注自己感兴趣的事件类型,并在这些事件发生时作出响应。区别在于,基于事件的架构只是把这个请求发出,并不急于得到结果,而是等合适的子系统处理完这个请求,发出Reply(Add(123,456)),最初的请求者再通过事件代理或中介处取回自己想要的结。上述理解捕捉到了EDA的一些核心特性,但需要注意的是,在EDA中,事件的发送和处理通常是异步和解耦的,而且通常不会有一个直接的回复机制来连接事件的发送者和接收者。原创 2024-05-28 15:46:59 · 1104 阅读 · 0 评论 -
企业服务总线(Enterprise Service Bus,ESB)简介
它提供了一个灵活的基础设施,用于连接、路由和中介不同服务之间的消息,从而实现服务的解耦、复用和灵活组合。定制开发可以提供更大的灵活性,但需要投入更多的人力和时间资源,并且需要自行负责后续的维护和升级工作。这些系统可能是在不同的时间点由不同的团队使用不同的技术栈开发的。在这个例子中,ESB充当了各个系统之间的“交通枢纽”,简化了系统间的集成和交互复杂性,提高了业务流程的灵活性和可扩展性。企业服务总线(ESB)的实现方式可以是选择专门的产品,也可以是定制开发,具体取决于企业的具体需求和现有技术架构。原创 2024-05-28 15:36:09 · 913 阅读 · 0 评论 -
SOA 与“微服务”的区别
综上所述,SOA和微服务在服务粒度、通信方式、交付要求、应用场景以及服务管理和部署等方面存在显著差异。这些差异使得两者在各自适合的场景中发挥着不同的优势。SOA(面向服务的架构)与微服务之间的区别可以从多个维度进行分析。原创 2024-05-28 15:27:23 · 493 阅读 · 0 评论 -
SOA 并不是一个单纯的 API
这个面向服务的架构虽然包含了多个提供API的服务,但它本身并不等同于一个简单的API,而是一个更复杂的系统架构。:一个大型企业构建了一个面向服务的架构,其中包含多个独立的服务,如用户管理服务、订单处理服务、库存管理服务等。:考虑一个简单的天气预报API,它允许开发者通过HTTP请求获取特定城市的天气信息。因此,这个天气预报API虽然是一个有用的接口,但并不构成一个SOA架构。原创 2024-05-28 15:24:15 · 357 阅读 · 0 评论 -
中间件的概念及示例
中间件是一种软件技术,它在分布式系统中起着至关重要的作用。定义与位置中间件是位于应用系统和系统软件之间的一类软件。它使用系统软件提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用。中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。功能与作用中间件能够屏蔽底层操作系统的复杂性,为上层应用程序提供一个简单、统一的开发和运行环境。中间件可以实现资源的共享和功能的共享,使得不同的应用程序能够互相通信和协作。原创 2024-05-18 11:06:16 · 689 阅读 · 0 评论 -
Rust 程序设计:三层架构的“全局数据”的“依赖注入”设计方法
其实,这样做并不违反三层架构原则,因为 main 函数并非三层架构中的 api 层,而是承担起了三层架构的组织者的角色 —— 这就是所谓的“依赖注入” 方法。Rust 程序分三层:api、logic、data,其中数据 Server 在 data 中定义,如果在 data 内定义成全局静态变量,api 层可以看不到 Server,但是 data层的代码访问全局变量 Server 必须是 unsafe 的。然而,在程序运行期间,其他模块应该通过接口或抽象层与data层进行交互,以保持代码的封装性和模块化。原创 2024-05-18 10:43:07 · 909 阅读 · 0 评论 -
Delphi 7打造RESTful API客户端
尽管Delphi 7是一个相对较老的开发工具,但通过结合Indy组件和其他第三方库,我们仍然可以使用它来创建一个功能强大的RESTful API客户端。希望这篇文章能给你带来一些启发和帮助!如果你有任何问题或建议,请随时留言交流。原创 2024-05-15 13:32:35 · 644 阅读 · 0 评论 -
MVC:一种设计模式而非软件架构
然而,重要的是要理解MVC是一种设计模式,而不是整个软件的架构。软件架构关注的是系统的全局结构和设计原则,以及如何将系统分解为可管理的部分,并定义这些部分之间的交互方式。软件架构是一个更广泛的概念,它涉及整个软件系统的结构和设计,包括系统的各个组件、组件之间的关系以及系统的整体行为。:作为模型和视图之间的中介,负责接收用户的输入,并调用相应的模型处理数据,然后更新视图。MVC设计模式的核心思想是将数据和数据的展示分离开来,使得数据的处理逻辑和用户界面的变化可以独立演进,互不干扰。原创 2024-05-11 22:49:43 · 404 阅读 · 0 评论