当前位置: 首页 > news >正文

搭建网站服务器平台的三种方式集团网站建设服务

搭建网站服务器平台的三种方式,集团网站建设服务,上海网站建设机构,html5源码文章目录 1. 依赖和关联1.1 依赖#xff08;Dependency#xff09;概念类图示例代码示例 1.2 关联#xff08;Association#xff09;概念类图示例代码示例 2. 组合和聚合#xff08;特殊的关联关系#xff09;2.1 聚合#xff08;Aggregation#xff09;概念类图示例代… 文章目录 1. 依赖和关联1.1 依赖Dependency概念类图示例代码示例 1.2 关联Association概念类图示例代码示例 2. 组合和聚合特殊的关联关系2.1 聚合Aggregation概念类图示例代码示例 2.2 组合Composition概念类图示例代码示例 3. 实现和泛化代码的重用3.1 实现Realization概念类图示例代码示例 3.2 泛化Generalization概念类图示例代码示例 1. 依赖和关联 1.1 依赖Dependency 概念 体现为局部变量、方法的形参或者对静态方法的调用。 如出行使用汽车下雨打伞等是一种弱关联关系也是一种临时关系 类图示例 #mermaid-svg-w4eFQNbTxr4ykOtC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-w4eFQNbTxr4ykOtC .error-icon{fill:#552222;}#mermaid-svg-w4eFQNbTxr4ykOtC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-w4eFQNbTxr4ykOtC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-w4eFQNbTxr4ykOtC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-w4eFQNbTxr4ykOtC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-w4eFQNbTxr4ykOtC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-w4eFQNbTxr4ykOtC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-w4eFQNbTxr4ykOtC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-w4eFQNbTxr4ykOtC .marker.cross{stroke:#333333;}#mermaid-svg-w4eFQNbTxr4ykOtC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-w4eFQNbTxr4ykOtC g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-w4eFQNbTxr4ykOtC g.classGroup text .title{font-weight:bolder;}#mermaid-svg-w4eFQNbTxr4ykOtC .nodeLabel,#mermaid-svg-w4eFQNbTxr4ykOtC .edgeLabel{color:#131300;}#mermaid-svg-w4eFQNbTxr4ykOtC .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-w4eFQNbTxr4ykOtC .label text{fill:#131300;}#mermaid-svg-w4eFQNbTxr4ykOtC .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-w4eFQNbTxr4ykOtC .classTitle{font-weight:bolder;}#mermaid-svg-w4eFQNbTxr4ykOtC .node rect,#mermaid-svg-w4eFQNbTxr4ykOtC .node circle,#mermaid-svg-w4eFQNbTxr4ykOtC .node ellipse,#mermaid-svg-w4eFQNbTxr4ykOtC .node polygon,#mermaid-svg-w4eFQNbTxr4ykOtC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-w4eFQNbTxr4ykOtC .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-w4eFQNbTxr4ykOtC g.clickable{cursor:pointer;}#mermaid-svg-w4eFQNbTxr4ykOtC g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-w4eFQNbTxr4ykOtC g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-w4eFQNbTxr4ykOtC .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-w4eFQNbTxr4ykOtC .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-w4eFQNbTxr4ykOtC .dashed-line{stroke-dasharray:3;}#mermaid-svg-w4eFQNbTxr4ykOtC #compositionStart,#mermaid-svg-w4eFQNbTxr4ykOtC .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #compositionEnd,#mermaid-svg-w4eFQNbTxr4ykOtC .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #dependencyStart,#mermaid-svg-w4eFQNbTxr4ykOtC .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #dependencyStart,#mermaid-svg-w4eFQNbTxr4ykOtC .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #extensionStart,#mermaid-svg-w4eFQNbTxr4ykOtC .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #extensionEnd,#mermaid-svg-w4eFQNbTxr4ykOtC .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #aggregationStart,#mermaid-svg-w4eFQNbTxr4ykOtC .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC #aggregationEnd,#mermaid-svg-w4eFQNbTxr4ykOtC .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-w4eFQNbTxr4ykOtC .edgeTerminals{font-size:11px;}#mermaid-svg-w4eFQNbTxr4ykOtC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Person Travel(car Car) Car 代码示例 package mainimport fmt //定义人的类 type Person struct {Name string } //该类有旅行方法需要车作为参数 func (p *Person) Travel(car Car) {fmt.Printf(%q 坐着 %q 去旅行, p.Name, car.Name) } //定义一个汽车类它是人的依赖 type Car struct {Name string }func main() {//实例化一个人guanYu : Person{Name: 关羽,}//实例化一辆车chiTu : Car{Name: 赤兔,}//执行人的旅行方法车的实例作为参数guanYu.Travel(*chiTu) }输出 关羽坐着赤兔取旅行1.2 关联Association 概念 体现为类的属性golang中可以表现为结构体的成员 如我的朋友聚合人和身体部位组合汽车和轮子组合是一种强关联关系也是一种长期关系 类图示例 #mermaid-svg-UuD6WRaqSLnLGZfN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UuD6WRaqSLnLGZfN .error-icon{fill:#552222;}#mermaid-svg-UuD6WRaqSLnLGZfN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UuD6WRaqSLnLGZfN .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UuD6WRaqSLnLGZfN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UuD6WRaqSLnLGZfN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UuD6WRaqSLnLGZfN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UuD6WRaqSLnLGZfN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UuD6WRaqSLnLGZfN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UuD6WRaqSLnLGZfN .marker.cross{stroke:#333333;}#mermaid-svg-UuD6WRaqSLnLGZfN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UuD6WRaqSLnLGZfN g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-UuD6WRaqSLnLGZfN g.classGroup text .title{font-weight:bolder;}#mermaid-svg-UuD6WRaqSLnLGZfN .nodeLabel,#mermaid-svg-UuD6WRaqSLnLGZfN .edgeLabel{color:#131300;}#mermaid-svg-UuD6WRaqSLnLGZfN .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-UuD6WRaqSLnLGZfN .label text{fill:#131300;}#mermaid-svg-UuD6WRaqSLnLGZfN .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-UuD6WRaqSLnLGZfN .classTitle{font-weight:bolder;}#mermaid-svg-UuD6WRaqSLnLGZfN .node rect,#mermaid-svg-UuD6WRaqSLnLGZfN .node circle,#mermaid-svg-UuD6WRaqSLnLGZfN .node ellipse,#mermaid-svg-UuD6WRaqSLnLGZfN .node polygon,#mermaid-svg-UuD6WRaqSLnLGZfN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UuD6WRaqSLnLGZfN .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-UuD6WRaqSLnLGZfN g.clickable{cursor:pointer;}#mermaid-svg-UuD6WRaqSLnLGZfN g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-UuD6WRaqSLnLGZfN g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-UuD6WRaqSLnLGZfN .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-UuD6WRaqSLnLGZfN .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-UuD6WRaqSLnLGZfN .dashed-line{stroke-dasharray:3;}#mermaid-svg-UuD6WRaqSLnLGZfN #compositionStart,#mermaid-svg-UuD6WRaqSLnLGZfN .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #compositionEnd,#mermaid-svg-UuD6WRaqSLnLGZfN .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #dependencyStart,#mermaid-svg-UuD6WRaqSLnLGZfN .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #dependencyStart,#mermaid-svg-UuD6WRaqSLnLGZfN .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #extensionStart,#mermaid-svg-UuD6WRaqSLnLGZfN .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #extensionEnd,#mermaid-svg-UuD6WRaqSLnLGZfN .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #aggregationStart,#mermaid-svg-UuD6WRaqSLnLGZfN .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN #aggregationEnd,#mermaid-svg-UuD6WRaqSLnLGZfN .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UuD6WRaqSLnLGZfN .edgeTerminals{font-size:11px;}#mermaid-svg-UuD6WRaqSLnLGZfN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Person Head:Head Hand:String Head 代码示例 参考下文 聚合、组合 2. 组合和聚合特殊的关联关系 2.1 聚合Aggregation 概念 是关联关系的一种表示一种弱的“拥有”关系。 如人之于人群苹果之于苹果堆体现了群体和个体的关系 类图示例 主角的朋友们成员是由配角聚合而成的一群人他们和主角不要求有相同的生命周期 #mermaid-svg-v7ewO3qYxrN5WZd1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v7ewO3qYxrN5WZd1 .error-icon{fill:#552222;}#mermaid-svg-v7ewO3qYxrN5WZd1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-v7ewO3qYxrN5WZd1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-v7ewO3qYxrN5WZd1 .marker.cross{stroke:#333333;}#mermaid-svg-v7ewO3qYxrN5WZd1 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-v7ewO3qYxrN5WZd1 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-v7ewO3qYxrN5WZd1 g.classGroup text .title{font-weight:bolder;}#mermaid-svg-v7ewO3qYxrN5WZd1 .nodeLabel,#mermaid-svg-v7ewO3qYxrN5WZd1 .edgeLabel{color:#131300;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-v7ewO3qYxrN5WZd1 .label text{fill:#131300;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-v7ewO3qYxrN5WZd1 .classTitle{font-weight:bolder;}#mermaid-svg-v7ewO3qYxrN5WZd1 .node rect,#mermaid-svg-v7ewO3qYxrN5WZd1 .node circle,#mermaid-svg-v7ewO3qYxrN5WZd1 .node ellipse,#mermaid-svg-v7ewO3qYxrN5WZd1 .node polygon,#mermaid-svg-v7ewO3qYxrN5WZd1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-v7ewO3qYxrN5WZd1 .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 g.clickable{cursor:pointer;}#mermaid-svg-v7ewO3qYxrN5WZd1 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-v7ewO3qYxrN5WZd1 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-v7ewO3qYxrN5WZd1 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-v7ewO3qYxrN5WZd1 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-v7ewO3qYxrN5WZd1 .dashed-line{stroke-dasharray:3;}#mermaid-svg-v7ewO3qYxrN5WZd1 #compositionStart,#mermaid-svg-v7ewO3qYxrN5WZd1 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #compositionEnd,#mermaid-svg-v7ewO3qYxrN5WZd1 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #dependencyStart,#mermaid-svg-v7ewO3qYxrN5WZd1 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #dependencyStart,#mermaid-svg-v7ewO3qYxrN5WZd1 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #extensionStart,#mermaid-svg-v7ewO3qYxrN5WZd1 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #extensionEnd,#mermaid-svg-v7ewO3qYxrN5WZd1 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #aggregationStart,#mermaid-svg-v7ewO3qYxrN5WZd1 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 #aggregationEnd,#mermaid-svg-v7ewO3qYxrN5WZd1 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-v7ewO3qYxrN5WZd1 .edgeTerminals{font-size:11px;}#mermaid-svg-v7ewO3qYxrN5WZd1 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Protagonist Name:string Friends:List SupportingRole 因为聚合也是一种特殊的关联关系因此可以画成 #mermaid-svg-epwc3rDUUPAHC6Ch {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-epwc3rDUUPAHC6Ch .error-icon{fill:#552222;}#mermaid-svg-epwc3rDUUPAHC6Ch .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-epwc3rDUUPAHC6Ch .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-epwc3rDUUPAHC6Ch .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-epwc3rDUUPAHC6Ch .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-epwc3rDUUPAHC6Ch .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-epwc3rDUUPAHC6Ch .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-epwc3rDUUPAHC6Ch .marker{fill:#333333;stroke:#333333;}#mermaid-svg-epwc3rDUUPAHC6Ch .marker.cross{stroke:#333333;}#mermaid-svg-epwc3rDUUPAHC6Ch svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-epwc3rDUUPAHC6Ch g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-epwc3rDUUPAHC6Ch g.classGroup text .title{font-weight:bolder;}#mermaid-svg-epwc3rDUUPAHC6Ch .nodeLabel,#mermaid-svg-epwc3rDUUPAHC6Ch .edgeLabel{color:#131300;}#mermaid-svg-epwc3rDUUPAHC6Ch .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-epwc3rDUUPAHC6Ch .label text{fill:#131300;}#mermaid-svg-epwc3rDUUPAHC6Ch .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-epwc3rDUUPAHC6Ch .classTitle{font-weight:bolder;}#mermaid-svg-epwc3rDUUPAHC6Ch .node rect,#mermaid-svg-epwc3rDUUPAHC6Ch .node circle,#mermaid-svg-epwc3rDUUPAHC6Ch .node ellipse,#mermaid-svg-epwc3rDUUPAHC6Ch .node polygon,#mermaid-svg-epwc3rDUUPAHC6Ch .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-epwc3rDUUPAHC6Ch .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-epwc3rDUUPAHC6Ch g.clickable{cursor:pointer;}#mermaid-svg-epwc3rDUUPAHC6Ch g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-epwc3rDUUPAHC6Ch g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-epwc3rDUUPAHC6Ch .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-epwc3rDUUPAHC6Ch .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-epwc3rDUUPAHC6Ch .dashed-line{stroke-dasharray:3;}#mermaid-svg-epwc3rDUUPAHC6Ch #compositionStart,#mermaid-svg-epwc3rDUUPAHC6Ch .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #compositionEnd,#mermaid-svg-epwc3rDUUPAHC6Ch .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #dependencyStart,#mermaid-svg-epwc3rDUUPAHC6Ch .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #dependencyStart,#mermaid-svg-epwc3rDUUPAHC6Ch .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #extensionStart,#mermaid-svg-epwc3rDUUPAHC6Ch .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #extensionEnd,#mermaid-svg-epwc3rDUUPAHC6Ch .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #aggregationStart,#mermaid-svg-epwc3rDUUPAHC6Ch .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch #aggregationEnd,#mermaid-svg-epwc3rDUUPAHC6Ch .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-epwc3rDUUPAHC6Ch .edgeTerminals{font-size:11px;}#mermaid-svg-epwc3rDUUPAHC6Ch :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Protagonist Name:string Friends:List SupportingRole 代码示例 package mainimport fmt// 定义主角类 type Protagonist struct {Name string//它的一个成员是配角的切片Friends []SupportingRole } //定义一个方法让配角加入主角的朋友此处为了演示方便和聚合关系无关 func (p *Protagonist) AddFriend(supportingRoleList ...SupportingRole) {p.Friends append(p.Friends, supportingRoleList...) } //定义一个方法查看主角此处为了演示方便和聚合关系无关 func (p *Protagonist) Get() {fmt.Printf(%v\n, p) } //定义配角类 type SupportingRole struct {Name string }func main() {//实例化一个主角——刘备liuBei : Protagonist{Name: 刘备,}//实例化两个配角——关羽、张飞guanYu : SupportingRole{Name: 关羽,}zhangFei : SupportingRole{Name: 张飞,}//将关羽、张飞加入刘备的朋友liuBei.AddFriend(guanYu, zhangFei)//查看刘备的信息liuBei.Get() } 输出 {Name:刘备 Friends:[{Name:关羽} {Name:张飞}]}2.2 组合Composition 概念 是关联关系的一种表示一种强的“拥有”关系。 如人之于头、脚汽车之于驾驶室、发动机体现了严格的部分和整体的关系部分和整体的生命周期一样 类图示例 人的组成部分包括头它们的实例有相同的生命周期 #mermaid-svg-kFiJE238nYcTWCRL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kFiJE238nYcTWCRL .error-icon{fill:#552222;}#mermaid-svg-kFiJE238nYcTWCRL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kFiJE238nYcTWCRL .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kFiJE238nYcTWCRL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kFiJE238nYcTWCRL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kFiJE238nYcTWCRL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kFiJE238nYcTWCRL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kFiJE238nYcTWCRL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kFiJE238nYcTWCRL .marker.cross{stroke:#333333;}#mermaid-svg-kFiJE238nYcTWCRL svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kFiJE238nYcTWCRL g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-kFiJE238nYcTWCRL g.classGroup text .title{font-weight:bolder;}#mermaid-svg-kFiJE238nYcTWCRL .nodeLabel,#mermaid-svg-kFiJE238nYcTWCRL .edgeLabel{color:#131300;}#mermaid-svg-kFiJE238nYcTWCRL .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-kFiJE238nYcTWCRL .label text{fill:#131300;}#mermaid-svg-kFiJE238nYcTWCRL .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-kFiJE238nYcTWCRL .classTitle{font-weight:bolder;}#mermaid-svg-kFiJE238nYcTWCRL .node rect,#mermaid-svg-kFiJE238nYcTWCRL .node circle,#mermaid-svg-kFiJE238nYcTWCRL .node ellipse,#mermaid-svg-kFiJE238nYcTWCRL .node polygon,#mermaid-svg-kFiJE238nYcTWCRL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kFiJE238nYcTWCRL .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-kFiJE238nYcTWCRL g.clickable{cursor:pointer;}#mermaid-svg-kFiJE238nYcTWCRL g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-kFiJE238nYcTWCRL g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-kFiJE238nYcTWCRL .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-kFiJE238nYcTWCRL .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-kFiJE238nYcTWCRL .dashed-line{stroke-dasharray:3;}#mermaid-svg-kFiJE238nYcTWCRL #compositionStart,#mermaid-svg-kFiJE238nYcTWCRL .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #compositionEnd,#mermaid-svg-kFiJE238nYcTWCRL .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #dependencyStart,#mermaid-svg-kFiJE238nYcTWCRL .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #dependencyStart,#mermaid-svg-kFiJE238nYcTWCRL .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #extensionStart,#mermaid-svg-kFiJE238nYcTWCRL .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #extensionEnd,#mermaid-svg-kFiJE238nYcTWCRL .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #aggregationStart,#mermaid-svg-kFiJE238nYcTWCRL .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL #aggregationEnd,#mermaid-svg-kFiJE238nYcTWCRL .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kFiJE238nYcTWCRL .edgeTerminals{font-size:11px;}#mermaid-svg-kFiJE238nYcTWCRL :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Person Head:Head Hand:String Head 因为他也是一种特殊的关联关系因此可以画成 #mermaid-svg-kK2d7jpBaSiMLzTP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kK2d7jpBaSiMLzTP .error-icon{fill:#552222;}#mermaid-svg-kK2d7jpBaSiMLzTP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kK2d7jpBaSiMLzTP .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kK2d7jpBaSiMLzTP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kK2d7jpBaSiMLzTP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kK2d7jpBaSiMLzTP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kK2d7jpBaSiMLzTP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kK2d7jpBaSiMLzTP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kK2d7jpBaSiMLzTP .marker.cross{stroke:#333333;}#mermaid-svg-kK2d7jpBaSiMLzTP svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kK2d7jpBaSiMLzTP g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-kK2d7jpBaSiMLzTP g.classGroup text .title{font-weight:bolder;}#mermaid-svg-kK2d7jpBaSiMLzTP .nodeLabel,#mermaid-svg-kK2d7jpBaSiMLzTP .edgeLabel{color:#131300;}#mermaid-svg-kK2d7jpBaSiMLzTP .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-kK2d7jpBaSiMLzTP .label text{fill:#131300;}#mermaid-svg-kK2d7jpBaSiMLzTP .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-kK2d7jpBaSiMLzTP .classTitle{font-weight:bolder;}#mermaid-svg-kK2d7jpBaSiMLzTP .node rect,#mermaid-svg-kK2d7jpBaSiMLzTP .node circle,#mermaid-svg-kK2d7jpBaSiMLzTP .node ellipse,#mermaid-svg-kK2d7jpBaSiMLzTP .node polygon,#mermaid-svg-kK2d7jpBaSiMLzTP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kK2d7jpBaSiMLzTP .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-kK2d7jpBaSiMLzTP g.clickable{cursor:pointer;}#mermaid-svg-kK2d7jpBaSiMLzTP g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-kK2d7jpBaSiMLzTP g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-kK2d7jpBaSiMLzTP .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-kK2d7jpBaSiMLzTP .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-kK2d7jpBaSiMLzTP .dashed-line{stroke-dasharray:3;}#mermaid-svg-kK2d7jpBaSiMLzTP #compositionStart,#mermaid-svg-kK2d7jpBaSiMLzTP .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #compositionEnd,#mermaid-svg-kK2d7jpBaSiMLzTP .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #dependencyStart,#mermaid-svg-kK2d7jpBaSiMLzTP .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #dependencyStart,#mermaid-svg-kK2d7jpBaSiMLzTP .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #extensionStart,#mermaid-svg-kK2d7jpBaSiMLzTP .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #extensionEnd,#mermaid-svg-kK2d7jpBaSiMLzTP .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #aggregationStart,#mermaid-svg-kK2d7jpBaSiMLzTP .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP #aggregationEnd,#mermaid-svg-kK2d7jpBaSiMLzTP .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kK2d7jpBaSiMLzTP .edgeTerminals{font-size:11px;}#mermaid-svg-kK2d7jpBaSiMLzTP :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Person Head:Head Hand:String Head 代码示例 package mainimport fmt //定义一个类——人 type Person struct {Name string//他有一个成员是头Head Head } //定义一个类——头 type Head struct {weight float64 } //写一个函数用来实例化一个具体的人这样保证了人和头的生命周期一致。实际操作中可以写一个工厂 func CreatePerson(name string, headWeight float64) (person *Person) {person Person{Name: name,Head: Head{weight: headWeight,},}return person }func main() {//实例化一个人——颜良八斤半的头留给关羽摘吧yanLiang : CreatePerson(颜良, 8.5)fmt.Printf(%v, yanLiang) } 输出 {Name:颜良 Head:{weight:8.5}}3. 实现和泛化代码的重用 3.1 实现Realization 概念 体现为类对接口的实现 比如接口人有工作方法其泛化类男人、女人都可以实现该接口的工作方法 类图示例 如概念中所述男人和女人都实现了接口人的工作方法 #mermaid-svg-kMHd85755WmfO0Sh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kMHd85755WmfO0Sh .error-icon{fill:#552222;}#mermaid-svg-kMHd85755WmfO0Sh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kMHd85755WmfO0Sh .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kMHd85755WmfO0Sh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kMHd85755WmfO0Sh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kMHd85755WmfO0Sh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kMHd85755WmfO0Sh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kMHd85755WmfO0Sh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kMHd85755WmfO0Sh .marker.cross{stroke:#333333;}#mermaid-svg-kMHd85755WmfO0Sh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kMHd85755WmfO0Sh g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-kMHd85755WmfO0Sh g.classGroup text .title{font-weight:bolder;}#mermaid-svg-kMHd85755WmfO0Sh .nodeLabel,#mermaid-svg-kMHd85755WmfO0Sh .edgeLabel{color:#131300;}#mermaid-svg-kMHd85755WmfO0Sh .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-kMHd85755WmfO0Sh .label text{fill:#131300;}#mermaid-svg-kMHd85755WmfO0Sh .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-kMHd85755WmfO0Sh .classTitle{font-weight:bolder;}#mermaid-svg-kMHd85755WmfO0Sh .node rect,#mermaid-svg-kMHd85755WmfO0Sh .node circle,#mermaid-svg-kMHd85755WmfO0Sh .node ellipse,#mermaid-svg-kMHd85755WmfO0Sh .node polygon,#mermaid-svg-kMHd85755WmfO0Sh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kMHd85755WmfO0Sh .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-kMHd85755WmfO0Sh g.clickable{cursor:pointer;}#mermaid-svg-kMHd85755WmfO0Sh g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-kMHd85755WmfO0Sh g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-kMHd85755WmfO0Sh .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-kMHd85755WmfO0Sh .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-kMHd85755WmfO0Sh .dashed-line{stroke-dasharray:3;}#mermaid-svg-kMHd85755WmfO0Sh #compositionStart,#mermaid-svg-kMHd85755WmfO0Sh .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #compositionEnd,#mermaid-svg-kMHd85755WmfO0Sh .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #dependencyStart,#mermaid-svg-kMHd85755WmfO0Sh .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #dependencyStart,#mermaid-svg-kMHd85755WmfO0Sh .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #extensionStart,#mermaid-svg-kMHd85755WmfO0Sh .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #extensionEnd,#mermaid-svg-kMHd85755WmfO0Sh .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #aggregationStart,#mermaid-svg-kMHd85755WmfO0Sh .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh #aggregationEnd,#mermaid-svg-kMHd85755WmfO0Sh .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kMHd85755WmfO0Sh .edgeTerminals{font-size:11px;}#mermaid-svg-kMHd85755WmfO0Sh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} «interface» Person Work() Man Work() Woman Work() 因为是一种弱关系因此我们可以看到是虚线链接 代码示例 package mainimport (fmt ) //定义一个人的接口 type Person interface {Work() } //定义男人类是接口人的实现 type Man struct {Name string }func (m *Man) Work() {fmt.Println(男人, m.Name, 开心的工作中) } //定义女人类是接口人的实现 type Woman struct {Name string }func (w *Woman) Work() {fmt.Println(女人, w.Name, 开心的工作中) } //定义一个函数实例化具体的人实际代码中我们可以写成一个工厂 func CreatePerson(name string, sex string) Person {switch sex {case man:return Man{Name: name,}case woman:return Woman{Name: name,}default:return nil} }func main() {CreatePerson(周瑜, man).Work()CreatePerson(小乔, woman).Work()}输出 男人 周瑜 开心的工作中 女人 小乔 开心的工作中3.2 泛化Generalization 概念 是继承的逆向关系子类是父类的泛化。 男人和女人也可以抽象出人类此时男人和女人是人类的泛化。 类图示例 男人是人的泛化不但继承了人的还拥有胡子 #mermaid-svg-4qkMDbdDBvtthcLw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4qkMDbdDBvtthcLw .error-icon{fill:#552222;}#mermaid-svg-4qkMDbdDBvtthcLw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4qkMDbdDBvtthcLw .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-4qkMDbdDBvtthcLw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4qkMDbdDBvtthcLw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4qkMDbdDBvtthcLw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4qkMDbdDBvtthcLw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4qkMDbdDBvtthcLw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4qkMDbdDBvtthcLw .marker.cross{stroke:#333333;}#mermaid-svg-4qkMDbdDBvtthcLw svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4qkMDbdDBvtthcLw g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-4qkMDbdDBvtthcLw g.classGroup text .title{font-weight:bolder;}#mermaid-svg-4qkMDbdDBvtthcLw .nodeLabel,#mermaid-svg-4qkMDbdDBvtthcLw .edgeLabel{color:#131300;}#mermaid-svg-4qkMDbdDBvtthcLw .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-4qkMDbdDBvtthcLw .label text{fill:#131300;}#mermaid-svg-4qkMDbdDBvtthcLw .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-4qkMDbdDBvtthcLw .classTitle{font-weight:bolder;}#mermaid-svg-4qkMDbdDBvtthcLw .node rect,#mermaid-svg-4qkMDbdDBvtthcLw .node circle,#mermaid-svg-4qkMDbdDBvtthcLw .node ellipse,#mermaid-svg-4qkMDbdDBvtthcLw .node polygon,#mermaid-svg-4qkMDbdDBvtthcLw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4qkMDbdDBvtthcLw .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-4qkMDbdDBvtthcLw g.clickable{cursor:pointer;}#mermaid-svg-4qkMDbdDBvtthcLw g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-4qkMDbdDBvtthcLw g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-4qkMDbdDBvtthcLw .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-4qkMDbdDBvtthcLw .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-4qkMDbdDBvtthcLw .dashed-line{stroke-dasharray:3;}#mermaid-svg-4qkMDbdDBvtthcLw #compositionStart,#mermaid-svg-4qkMDbdDBvtthcLw .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #compositionEnd,#mermaid-svg-4qkMDbdDBvtthcLw .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #dependencyStart,#mermaid-svg-4qkMDbdDBvtthcLw .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #dependencyStart,#mermaid-svg-4qkMDbdDBvtthcLw .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #extensionStart,#mermaid-svg-4qkMDbdDBvtthcLw .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #extensionEnd,#mermaid-svg-4qkMDbdDBvtthcLw .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #aggregationStart,#mermaid-svg-4qkMDbdDBvtthcLw .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw #aggregationEnd,#mermaid-svg-4qkMDbdDBvtthcLw .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4qkMDbdDBvtthcLw .edgeTerminals{font-size:11px;}#mermaid-svg-4qkMDbdDBvtthcLw :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Person Name:String Head:String Man Person:Person Beard:String 代码示例 package mainimport fmt //定义一个类——人 type Person struct {Head stringBody string } //定义人的方法用来设置人的属性 func (p *Person) SetPerson(head string, body string) {p.Head headp.Body body } //定义一个男人类它是人的泛化即它继承了人 type Man struct {PersonBear string } //定义一个男人的方法用来设置男人的属性 func (m *Man) SetMan(bear string) {m.Bear bear }func main() {//实例化一个男人——关羽guanYu : Man{}//设置关羽人的属性guanYu.SetPerson(大头红脸, 身高九尺)//设置关羽男人的属性guanYu.SetMan(长胡子)//查看结果fmt.Printf(%v, guanYu) }结果输出 {Person:{Head:大头红脸 Body:身高九尺} Bear:长胡子}
http://www.dnsts.com.cn/news/61617.html

相关文章:

  • 南京网站制作域名互联网推广软件
  • 网站建设及推广预算表通信技术公司网站建设
  • 备案密码如何登录添加网站微信红包封面分销平台
  • 怎么用.net做网站学校建设外文网站情况
  • 宁波哪里做网站的网站系统功能描述
  • 网站制作详细流程qq空间关闭申请网站
  • 北京网站设计服务app手机软件开发
  • 网站不能添加图片大学网站栏目建设通知
  • icp备案网站管理员有负责吗网址生成短链接
  • 网站建设与优化推广方案模板希爱力
  • 找做金融的网站闵行郑州阳网站建设
  • 无锡网站制作哪家便宜个人域名备案流程详细
  • 12380网站建设打算爱站网查询
  • 百度右边相关网站网站运营需要哪些人员
  • 网站的链接建设wordpress 空行
  • 江门专业网站建设价格个人注册公司的步骤
  • 怎么确定电商网站建设的目标做网站不赚钱了
  • 广西腾达建设集团有限公司网站现代网络营销的方式
  • 上海个人建站模板wordpress 招聘模块
  • 寻找锦州网站建设百度做网站的费用
  • 重庆网站推广运营深圳给企业做网站
  • 网站建设公司的客户cpa个人网站怎么做
  • 绍兴柯桥区城乡建设局网站网站关键词 公司
  • 查询建设规范的网站餐饮vi设计公司
  • 360做网站多少钱一年申请网站网站
  • 图片生成链接的网站安监局特种作业证全国联网
  • 小企业网站建设价格网页制作与网站建设实战大全
  • 网站开发 云智互联自学做网站的书
  • 512m内存做网站邵阳网站开发公司推荐
  • 企业网站的建设报价免费ppt模板下载 知乎