OMT画图的五种结构表达方式

  1. 实例化:A类依赖于B类。

    javascript 复制代码
    class B {
      doSth () {
    
      }
    }
    
    class A {
      constructor () {}
    
      run () {
        const b = new B()
        b.doSth()
      }
    }
    
    new A().run()
  2. 委托:A对象依赖于B对象。

    javascript 复制代码
    class B {
      doSth () {
    
      }
    }
    const b = new B()
    
    class A {
      constructor () {}
    
      run () {
        b.doSth()
      }
    }
    new A().run()
  3. 聚合:A对象和B对象是"has-a"关系。

    javascript 复制代码
    class Student {  
      constructor(name) {  
        this.name = name  
      }
    }
    
    class Classroom {  
      constructor() {  
        this.students = []  
      }
    
      addStudent(student) {  
        this.students.push(student)  
      }  
    }
    
    let student1 = new Student('Alice')  
    let student2 = new Student('Bob')  
    let classroom = new Classroom()  
    classroom.addStudent(student1)  
    classroom.addStudent(student2)
  4. 组合:A对象和B对象是"is-a"关系。

    javascript 复制代码
    class Creature {  
      constructor(name) {  
        this.name = name  
      }  
    }  
    
    class Eye {  
      constructor(color) {  
        this.color = color  
      }  
    }  
    
    class Human extends Creature {  
      constructor() {  
        super('Human')  
        this.leftEye = new Eye('blue')  
        this.rightEye = new Eye('brown')  
      }  
    }
  5. 继承:A类和B类是"is-a"关系。

相关推荐
Old Uncle Tom14 小时前
LLM 替代 SAST?Claude Code 安全审查工具的设计取舍与工程启示
人工智能·安全·软件工程
地图小课堂16 小时前
Bigemap Pro如何打开无人机航拍影像并套合配准(有坐标 geoTiff、ecw)
无人机·软件工程
长不大的杨瑞杰21 小时前
OpenCode v2 多源上下文实战:Websearch、References、Attachments 与缓存预热
人工智能·安全·云计算·软件工程·devops
howard20051 天前
软件工程课程架构思维导图
软件工程·课程架构
七夜zippoe1 天前
软件工程3.0时代,大模型驱动测试实战指南
大模型·实战·软件工程·测试·驱动软件
rolt2 天前
04 ESLint和Dijkstra-评点茹炳晟文章中的一段话
人工智能·软件工程·ddd·领域驱动设计·敏捷开发
无心水2 天前
6、软件工程 核心考点与学习笔记
笔记·学习·软件工程·软考高级·架构师·软考·软考系统架构设计师
长不大的杨瑞杰2 天前
OpenCode v2 远程开发实战:Web UI、Pair、SSH 隧道与 OpenTunnel 安全接入
人工智能·安全·云计算·软件工程·devops
长不大的杨瑞杰2 天前
OpenCode v2 MCP 与插件体系实战:把数据库、工单和内部 API 安全接入 Agent
人工智能·安全·语言模型·软件工程·1024程序员节
rolt3 天前
[存档]Alistair Cockburn-2003年11月UMLChina交流会
软件工程·产品经理·uml·敏捷开发·用例·cockburn