架构
文章平均质量分 93
架构设计相关
安得小学僧-设计模式之美
致力于研究设计模式的一个资深程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
郑开源的软件架构觉醒之路-迪米特法则详解
《迪米特法则实践:从代码困惑到设计优化》讲述了一位Java工程师郑开源在开发中遇到的代码耦合问题。通过分析违反迪米特法则的链式调用(如user.getDepartment().getManager())导致的维护困难,文章阐述了迪米特法则"最少知识"的核心思想:对象应仅与直接朋友交互,避免过度了解其他类的内部结构。文章提供了三种重构方案:委托模式(将调用封装在User类中)、DTO模式(集中数据组装)和门面模式(协调子系统),帮助降低耦合度,提升代码可维护性。原创 2025-07-10 08:30:10 · 408 阅读 · 0 评论 -
郑开源的继承与多态觉醒之路-里氏替换原则
摘要 本文讲述了程序员郑开源接手公司支付系统重构任务时遇到的继承体系问题。系统原有设计违反了里氏替换原则(LSP),导致子类替换父类时出现系统崩溃。通过分析信用卡支付和退款支付代码,郑开源发现退款支付类违反了基类Payment关于金额必须为正数的契约。老王详细讲解了LSP的核心要求:子类不能加强前置条件、不能减弱后置条件、必须保持不变式,并指出LSP的本质是确保继承关系的行为兼容性和契约遵守。文章通过具体代码示例展示了如何识别和解决LSP违规问题,为支付系统重构提供了理论指导。原创 2025-07-07 16:15:03 · 911 阅读 · 0 评论 -
开闭原则:郑开源的软件设计觉醒之路
郑开源是一名Java开发工程师,在开发电商优惠系统时遇到了代码频繁修改的困境。随着需求不断增加,他的DiscountCalculator类变得臃肿且难以维护,违反了单一职责原则,每次新增优惠类型都需要修改核心类,容易引入Bug。在导师老王的指导下,郑开源学习了开闭原则(OCP)——软件应对扩展开放,对修改关闭。通过抽象化、多态和依赖倒置等机制,他将系统重构为基于策略模式的设计,定义了DiscountStrategy接口和多种实现类,使新优惠类型可以通过扩展而非修改来添加。这种设计显著提高了系统的可维护性和可原创 2025-07-06 18:01:11 · 773 阅读 · 0 评论 -
从观察者模式到事件驱动架构的探索之旅-Spring事件机制
摘要:郑开源在开发电商系统时遇到订单服务与多个功能紧耦合的问题。架构师老李建议使用Spring事件机制解耦,通过定义OrderCreatedEvent事件和@EventListener监听器,将邮件发送、库存更新等操作异步处理。深入源码分析发现,Spring事件基于ApplicationEvent、ApplicationEventPublisher和ApplicationEventMulticaster实现,通过观察者模式优雅解决了业务解耦需求。这种方式降低了系统复杂度,提高了可扩展性。原创 2025-07-06 17:28:25 · 898 阅读 · 0 评论 -
@Configuration注解学习笔记:从配置文件到代码配置的华丽转身
郑开源是一名刚入职的Java开发工程师,刚开始接触Spring框架时,他被各种XML配置文件搞得头昏脑涨。"为什么要写这么多XML?能不能用Java代码来配置?"郑开源经常这样想。直到有一天,他的导师老王向他介绍了注解,从此郑开源的Spring配置世界发生了翻天覆地的变化。“@Configuration不仅仅是XML配置的替代品,更是一种更加灵活、类型安全、易于维护的配置方式。它让我们能够用熟悉的Java代码来管理Spring容器中的Bean。原创 2025-07-06 16:09:18 · 710 阅读 · 0 评论 -
从新手到专家的设计之路-依赖倒置原则
郑开源是一名Java开发工程师,最近在开发一个电商系统时遇到了困惑。他的代码能运行,但总感觉哪里不对劲——每次修改都牵一发动全身,测试也很困难。"为什么我的代码这么难维护?"郑开源陷入了沉思。直到他遇到了依赖倒置原则(Dependency Inversion Principle),一切都改变了。“依赖倒置不仅仅是技术手段,更是一种设计思维。它让我们从’实现驱动设计’转向’需求驱动设计’。场景应用方式收益数据访问层Repository模式数据库无关性外部服务调用Service接口。原创 2025-07-06 14:13:53 · 947 阅读 · 0 评论 -
六边形架构学习心得
文章摘要: 六边形架构通过"端口和适配器"设计解耦业务逻辑与技术实现,解决了传统三层架构的高耦合问题。开发者小张在重构电商系统时,将业务逻辑作为核心,通过定义主端口(业务用例)和副端口(外部依赖),使系统更易测试和扩展。具体实现包括:1) 提取纯粹业务对象;2) 定义业务用例接口;3) 抽象外部依赖接口;4) 业务逻辑只依赖抽象接口。这种架构使技术实现可替换,业务逻辑可独立演进,显著提升了系统的可维护性和扩展性。原创 2025-07-06 11:00:32 · 568 阅读 · 0 评论 -
许世伟架构课读书笔记
本文梳理了许世伟的架构思想核心内容,包括架构思维基础、设计方法论、分层架构和微服务实践。架构的本质是管理复杂性,需遵循简单性、演化性和一致性原则。采用4+1视图方法全面设计架构,从需求分析到验证的完整流程。分层架构推荐三层结构和六边形架构,强调业务与技术分离。微服务拆分遵循业务、数据和团队驱动原则,介绍了API网关等关键设计模式。许世伟的架构思想注重实用性和业务匹配,为开发者提供了系统性的架构指导框架。原创 2025-07-06 10:30:58 · 707 阅读 · 0 评论 -
接口隔离原则-从臃肿到优雅的接口设计之路
《遵循接口隔离原则,优化系统设计》 摘要:本文通过开发者郑开源在维护电商系统时遇到的接口设计问题,阐述了接口隔离原则(ISP)的重要性。最初设计的臃肿UserService接口导致实现类被迫包含大量无用方法,客户端调用也频繁出现异常。学习ISP原则后,郑开源将大接口拆分为6个单一职责的小接口(UserManagementService、UserAuthenticationService等),每个接口只包含相关功能。重构后,实现类只需关注真正需要的方法,客户端调用也更加明确可靠。这一实践展示了ISP原则如何解原创 2025-07-06 14:06:26 · 1106 阅读 · 0 评论
分享