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

相关推荐
智造ERP规划3 小时前
项目型制造财务核算全流程:收入什么时候确认、成本怎么归集、开票≠收款,一条链讲透
大数据·系统架构·软件工程·制造
梁辰兴20 小时前
软件工程:概要设计的任务
软件工程·设计原则·设计方法·梁辰兴·关键要点·概要设计的任务·主要任务
Dr.kangder1 天前
AI4SE:AI赋能软件工程——从自动化到智能化的演进之路
人工智能·自动化·软件工程
郝学胜-神的一滴1 天前
Python 高级编程 026:内置数据结构之骈文纵论
开发语言·数据结构·python·程序人生·软件工程
粟悟饭&龟波功2 天前
【一】软件工程核心概念层级地图与项目落地全流程
系统架构·软件工程
叫我Paul就好2 天前
RAG 入门到精通 - 生成的优化
人工智能·软件工程·rag
郝学胜-神的一滴3 天前
Qt 高级编程 037:QSS按钮样式封神指南
开发语言·c++·qt·软件工程·用户界面
梁辰兴3 天前
软件工程:需求规格说明书
软件工程·规格说明书·梁辰兴·定义作用·内容结构·编写原则·编写方法
rolt4 天前
PlantUML+EA描述《分析模式》第6章存货和会计(8)
软件工程·架构师·uml
加密狗复制模拟5 天前
使用x64dbg进行超级狗super dog 加密狗逆向分析复制 超级狗克隆备份
安全·软件工程·个人开发·同态加密