系统架构设计师 系统设计篇二

🎩 面向对象设计 (Object-Oriented Design, OOD)

面向对象设计(OOD)是面向对象分析方法的延续,包含的基本思想包括:

  • 抽象 🎨:将现实世界的对象抽象成系统中的类和对象。
  • 封装 📦:将数据和行为封装在对象内部,只暴露必要的接口。
  • 可扩展性 🚀:通过继承和多态实现系统的扩展和维护。

在面向对象设计中,数据结构和算法都封装在对象之中,使得系统更具灵活性和可维护性。

设计类分类

类封装了信息和行为,是面向对象的重要组成部分。类是具有相同属性、方法和关系的对象集合。设计得好的类通常具有明确的职责,可以分为:

实体类 📂

  • 命名:采用业务领域的术语,一般为名词。通常可以从软件需求规格说明书(SRS)中那些与数据库表对应的名词来命名。
  • 存储:对应需求中的每个实体,保存需要存储在永久存储体中的信息。
  • 特点:通常有属性,不一定有方法。

控制类 🎛️

  • 命名:用于控制用例工作的类,名称通常由动宾结构的短语(如“动词+名词”)转化而来。
  • 协调性:用于对一个或多个用例特有的控制行为进行建模,控制类对象通常协调其他对象的操作。
  • 特点:通常没有属性,但一定有方法。

边界类 🌐

  • 封装:封装在用例内、外流动的信息或数据流。位于系统与外界的交界处。
  • 交互:每个参与者和用例的交互至少要有一个边界类,用于建模系统外部环境与内部运作之间的交互。
  • 系统接口:用于与系统外部进行交互,隔离外部环境的变化,使其不影响系统的其他部分。
  • 特点:可以同时包含属性和方法。

面向对象设计原则 🛠️

OOD 强调可维护性和复用性,包含 6 种设计原则:

开闭原则(OCP)

  • 软件实体应对扩展开放,对修改关闭。
  • 使用接口或抽象类来进行扩展,而不修改原有代码。

里氏替换原则(LSP)

  • 子类应该可以替换父类,并且系统行为保持一致。
  • 子类必须完整实现父类的功能,不破坏原有系统的行为。

依赖倒置原则(DIP)

  • 抽象不应该依赖于细节,细节应当依赖于抽象。
  • 高层模块不应该依赖于低层模块,二者都应该依赖于抽象接口。

组合/聚合复用原则(CARP)

  • 优先使用组合或聚合关系来复用代码,而不是继承。
  • 通过组合现有对象来构建新的功能,使系统更灵活。

接口隔离原则(ISP)

  • 使用多个专门的接口,而不是一个总接口。
  • 每个接口应只提供一种角色的行为,使接口更易理解和实现。

最少知识原则(LoD)

  • 一个对象应当尽可能少地与其他对象发生相互作用。
  • 减少对象之间的依赖,降低系统的复杂性。

总结 🧐

  • 高内聚:模块内部功能紧密联系,提高效率。
  • 低耦合:模块之间联系松散,减少依赖。

记忆口诀 🎓

  • 互联网开发三大模块:

    • 实体类:像用户数据库中的用户档案,存储所有用户信息。
    • 控制类:像后台服务中的请求处理器,协调用户请求和数据处理。
    • 边界类:像API接口,处理应用与外部系统的数据交换。
  • 六大原则互联网版:

    • 开闭原则:像网站新功能上线,不修改原有功能,只通过插件扩展。
    • 里氏替换:像不同设备访问同一网站,无论用什么设备,网站功能一致。
    • 依赖倒置:像网站依赖于API接口而非具体的数据库实现,保持灵活性。
    • 组合聚合:像前端页面组合不同模块(如导航、内容、广告),减少对单一模块的依赖。
    • 接口隔离:像不同的API接口提供专门服务,避免一个接口承担过多功能。
    • 最少知识:像用户只需知道如何使用网站功能,不需了解后台实现细节。

趣味记忆互联网案例故事 🌐

  • 互联网开发的三大角色:

    • 实体类:像用户档案管理员,负责存储用户的所有基本信息和偏好。
    • 控制类:像后台服务的调度员,协调用户的请求、数据存取和业务逻辑。
    • 边界类:像API大门,负责应用和外部系统之间的数据传递和互动。
  • 六大原则互联网故事:

    • 开闭原则:新功能上线时,像增加新插件,不动原有代码的核心。
    • 里氏替换:不同设备访问网站时,功能保持一致,如电脑和手机都能正常访问。
    • 依赖倒置:系统依赖通用的API接口,不受特定数据库的限制,灵活扩展。
    • 组合聚合:前端页面通过组合不同的模块(如导航条、内容区域),避免单一模块的依赖。
    • 接口隔离:不同API接口处理特定任务,如用户登录、数据查询,专注于各自的功能。
    • 最少知识:用户使用网站时,关注自己需要的功能,不需了解后台的复杂实现。

互联网开发就像建造一个高效的网站,三大模块各司其职,六大原则确保系统稳定流畅。跟随这些规则,网站开发就像搭建乐高,构建美妙的互联网世界!** 🌟🖥️

参与点评
读者朋友们,如果您在阅读过程中,对文章的质量、易理解性有任何建议,欢迎在评论区指出,我会认真改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AmHardy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值