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

相关推荐
lisw0511 小时前
社会技术需要社会协调!
人工智能·机器学习·软件工程
lisw0518 小时前
基于零信任的云-边-端访问控制系统,使用可信标签
人工智能·机器学习·软件工程
Zzj_tju19 小时前
LLM for Code Research:程序合成、自动调试与软件工程评测
人工智能·语言模型·软件工程
疯狂打码的少年21 小时前
【软件工程】需求工程:需求获取与需求分析
数据库·笔记·软件工程·需求分析
云纳星辰怀自在1 天前
嵌入式系统栈溢出:从幽灵Bug到精准防控的全链路指南
软件工程·嵌入式软件·栈溢出·stack溢出
NG4772 天前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程
cspttty2 天前
二本软件工程专业好就业吗?毕业后能做哪些岗位
大数据·软件工程
梁辰兴2 天前
软件工程:软件的定义、特点、种类及其发展
软件工程·软件·梁辰兴·软件发展·软件定义·软件特点·软件种类
疯狂打码的少年2 天前
【软件工程】需求工程:需求规格说明与需求验证
笔记·软件工程
Hardworking6662 天前
第5章 软件工程
软件工程