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"关系。

相关推荐
成茂峰8 分钟前
软考高级·系统架构设计师 | 五、软件工程基础知识
系统架构·软件工程·软考高级·架构设计
雾江流1 天前
小米堆叠桌面6.01.05.1991 | 提前享受丝滑堆叠桌面,仅限小米手机
智能手机·软件工程
爱思德学术1 天前
中国计算机学会(CCF)推荐学术会议-C(软件工程/系统软件/程序设计语言):SPIN 2026
软件工程·软件开发
赫尔·普莱蒂科萨·帕塔2 天前
智能体工程
人工智能·机器人·软件工程·agi
雾江流2 天前
BiliPai 5.0.5 | B站开源第三方应用,纯净无广流畅
软件工程
JMchen1232 天前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
muddjsv3 天前
软件工程:职业全景与前景深度解析
软件工程
明洞日记3 天前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
muddjsv3 天前
软件工程编程语言学习:从入门到工程化的路线与建议
软件工程
宇钶宇夕4 天前
CoDeSys入门实战一起学习(二十八):(ST)三台电机顺起逆停程序详解
运维·学习·自动化·软件工程