荣耀华为手机商城官方网站站酷设计网站官网入口免费
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:52
当前位置: 首页 > news >正文
荣耀华为手机商城官方网站,站酷设计网站官网入口免费,泰安做网站公司哪家比较好,网站标签title文章目录 1 概述2.1 角色2.2 类图 2 代码示例2. 1 设计2.2 代码2.3 类图 3. 简单工厂3.1 角色3.2 类图3.3 代码示例3.3.1 设计3.3.2 代码3.3.3 类图 1 概述 工厂方法类定义产品对象创建接口#xff0c;但由子类实现具体产品对象的创建。 2.1 角色 Product#xff08;抽象产… 文章目录 1 概述2.1 角色2.2 类图 2 代码示例2. 1 设计2.2 代码2.3 类图 3. 简单工厂3.1 角色3.2 类图3.3 代码示例3.3.1 设计3.3.2 代码3.3.3 类图 1 概述 工厂方法类定义产品对象创建接口但由子类实现具体产品对象的创建。 2.1 角色 Product抽象产品它是具体产品的抽象类可以是结构体也可以是接口ConcreteProduct具体产品它实现了抽象产品接口对应了一种具体产品Factroy抽象工厂在抽象工厂类中声明了工厂方法用于返回一个产品。ConcreteFactory具体工厂实现了在抽象工厂中声明的工厂方法并可由客户端调用返回一个具体产品类的实例。 2.2 类图 #mermaid-svg-lcYeJZO6AeHMLYQr {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lcYeJZO6AeHMLYQr .error-icon{fill:#552222;}#mermaid-svg-lcYeJZO6AeHMLYQr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lcYeJZO6AeHMLYQr .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-lcYeJZO6AeHMLYQr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lcYeJZO6AeHMLYQr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lcYeJZO6AeHMLYQr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lcYeJZO6AeHMLYQr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lcYeJZO6AeHMLYQr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lcYeJZO6AeHMLYQr .marker.cross{stroke:#333333;}#mermaid-svg-lcYeJZO6AeHMLYQr svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lcYeJZO6AeHMLYQr g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-lcYeJZO6AeHMLYQr g.classGroup text .title{font-weight:bolder;}#mermaid-svg-lcYeJZO6AeHMLYQr .nodeLabel,#mermaid-svg-lcYeJZO6AeHMLYQr .edgeLabel{color:#131300;}#mermaid-svg-lcYeJZO6AeHMLYQr .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-lcYeJZO6AeHMLYQr .label text{fill:#131300;}#mermaid-svg-lcYeJZO6AeHMLYQr .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-lcYeJZO6AeHMLYQr .classTitle{font-weight:bolder;}#mermaid-svg-lcYeJZO6AeHMLYQr .node rect,#mermaid-svg-lcYeJZO6AeHMLYQr .node circle,#mermaid-svg-lcYeJZO6AeHMLYQr .node ellipse,#mermaid-svg-lcYeJZO6AeHMLYQr .node polygon,#mermaid-svg-lcYeJZO6AeHMLYQr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lcYeJZO6AeHMLYQr .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-lcYeJZO6AeHMLYQr g.clickable{cursor:pointer;}#mermaid-svg-lcYeJZO6AeHMLYQr g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-lcYeJZO6AeHMLYQr g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-lcYeJZO6AeHMLYQr .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-lcYeJZO6AeHMLYQr .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-lcYeJZO6AeHMLYQr .dashed-line{stroke-dasharray:3;}#mermaid-svg-lcYeJZO6AeHMLYQr #compositionStart,#mermaid-svg-lcYeJZO6AeHMLYQr .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #compositionEnd,#mermaid-svg-lcYeJZO6AeHMLYQr .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #dependencyStart,#mermaid-svg-lcYeJZO6AeHMLYQr .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #dependencyStart,#mermaid-svg-lcYeJZO6AeHMLYQr .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #extensionStart,#mermaid-svg-lcYeJZO6AeHMLYQr .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #extensionEnd,#mermaid-svg-lcYeJZO6AeHMLYQr .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #aggregationStart,#mermaid-svg-lcYeJZO6AeHMLYQr .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr #aggregationEnd,#mermaid-svg-lcYeJZO6AeHMLYQr .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-lcYeJZO6AeHMLYQr .edgeTerminals{font-size:11px;}#mermaid-svg-lcYeJZO6AeHMLYQr :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} «interface» Product Get() ConcreteProductA Get() ConcreteProductB Get() «interface» Factroy CreateProduct() ConcreteFactroyA CreateProduct() : Product ConcreteFactroyB CreateProduct() : Product Client 2 代码示例
- 1 设计
2.2 代码
package mainimport (fmt
)type Product interface {Get()
}type ConcreteProductA struct {Name stringKind string
}func (c *ConcreteProductA) Get() {fmt.Printf(%v,c)
}
type ConcreteProductB struct {Name stringKind string
}func (c *ConcreteProductB) Get() {fmt.Printf(%v,c)
}type ConcreteProductC struct {Name stringKind string
}func (c *ConcreteProductC) Get() {fmt.Printf(%v,c)
}type Factroy interface {CreateProduct(name string) Product
}type ConcreteFactoryA struct {
}func (f *ConcreteFactoryA) CreateProduct(name string) Product {p : ConcreteProductA{Name: name,Kind:A,}return p
}type ConcreteFactoryB struct {
}func (f *ConcreteFactoryB) CreateProduct(name string) Product {p : ConcreteProductB{Name: name,Kind: B,}return p
}type ConcreteFactoryC struct {
}func (f *ConcreteFactoryC) CreateProduct(name string) Product {p : ConcreteProductC{Name: name,Kind: C,}return p
}func CreateProduct(myType int64) Factroy {switch myType {case 1:return ConcreteFactoryA{}case 2:return ConcreteFactoryB{}case 3:return ConcreteFactoryC{}}return nil
}func main() {factory : CreateProduct(1)product : factory.CreateProduct(nginx)product.Get()
}输出
{Name:nginx Kind:A}2.3 类图 #mermaid-svg-Bf90sSZIPtLuX8IC {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Bf90sSZIPtLuX8IC .error-icon{fill:#552222;}#mermaid-svg-Bf90sSZIPtLuX8IC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Bf90sSZIPtLuX8IC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Bf90sSZIPtLuX8IC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Bf90sSZIPtLuX8IC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Bf90sSZIPtLuX8IC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Bf90sSZIPtLuX8IC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Bf90sSZIPtLuX8IC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Bf90sSZIPtLuX8IC .marker.cross{stroke:#333333;}#mermaid-svg-Bf90sSZIPtLuX8IC svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Bf90sSZIPtLuX8IC g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-Bf90sSZIPtLuX8IC g.classGroup text .title{font-weight:bolder;}#mermaid-svg-Bf90sSZIPtLuX8IC .nodeLabel,#mermaid-svg-Bf90sSZIPtLuX8IC .edgeLabel{color:#131300;}#mermaid-svg-Bf90sSZIPtLuX8IC .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-Bf90sSZIPtLuX8IC .label text{fill:#131300;}#mermaid-svg-Bf90sSZIPtLuX8IC .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-Bf90sSZIPtLuX8IC .classTitle{font-weight:bolder;}#mermaid-svg-Bf90sSZIPtLuX8IC .node rect,#mermaid-svg-Bf90sSZIPtLuX8IC .node circle,#mermaid-svg-Bf90sSZIPtLuX8IC .node ellipse,#mermaid-svg-Bf90sSZIPtLuX8IC .node polygon,#mermaid-svg-Bf90sSZIPtLuX8IC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Bf90sSZIPtLuX8IC .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-Bf90sSZIPtLuX8IC g.clickable{cursor:pointer;}#mermaid-svg-Bf90sSZIPtLuX8IC g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-Bf90sSZIPtLuX8IC g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-Bf90sSZIPtLuX8IC .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-Bf90sSZIPtLuX8IC .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-Bf90sSZIPtLuX8IC .dashed-line{stroke-dasharray:3;}#mermaid-svg-Bf90sSZIPtLuX8IC #compositionStart,#mermaid-svg-Bf90sSZIPtLuX8IC .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #compositionEnd,#mermaid-svg-Bf90sSZIPtLuX8IC .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #dependencyStart,#mermaid-svg-Bf90sSZIPtLuX8IC .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #dependencyStart,#mermaid-svg-Bf90sSZIPtLuX8IC .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #extensionStart,#mermaid-svg-Bf90sSZIPtLuX8IC .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #extensionEnd,#mermaid-svg-Bf90sSZIPtLuX8IC .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #aggregationStart,#mermaid-svg-Bf90sSZIPtLuX8IC .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC #aggregationEnd,#mermaid-svg-Bf90sSZIPtLuX8IC .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Bf90sSZIPtLuX8IC .edgeTerminals{font-size:11px;}#mermaid-svg-Bf90sSZIPtLuX8IC :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} «interface» Product Get() ConcreteProductA Name:string Kind:string Get() ConcreteProductB Name:string Kind:string Get() ConcreteProductC Name:string Kind:string Get() «interface» Factroy CreateProduct() ConcreteFactroyA CreateProduct() : Product ConcreteFactroyB CreateProduct() : Product ConcreteFactroyC CreateProduct() : Product 3. 简单工厂
在产品结构简单的情况下我们可以把工厂模式简化成一个简单工厂
3.1 角色
Product抽象产品它是具体产品的抽象类可以是结构体也可以是接口ConcreteProduct具体产品它实现了抽象产品接口对应了一种具体产品Factroy简单工厂根据一个条件用于返回一个产品 去掉了具体工厂角色产品由简单工厂直接返回。 3.2 类图 #mermaid-svg-LvQKwShI02EOdou4 {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LvQKwShI02EOdou4 .error-icon{fill:#552222;}#mermaid-svg-LvQKwShI02EOdou4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LvQKwShI02EOdou4 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-LvQKwShI02EOdou4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LvQKwShI02EOdou4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LvQKwShI02EOdou4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LvQKwShI02EOdou4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LvQKwShI02EOdou4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LvQKwShI02EOdou4 .marker.cross{stroke:#333333;}#mermaid-svg-LvQKwShI02EOdou4 svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LvQKwShI02EOdou4 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-LvQKwShI02EOdou4 g.classGroup text .title{font-weight:bolder;}#mermaid-svg-LvQKwShI02EOdou4 .nodeLabel,#mermaid-svg-LvQKwShI02EOdou4 .edgeLabel{color:#131300;}#mermaid-svg-LvQKwShI02EOdou4 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-LvQKwShI02EOdou4 .label text{fill:#131300;}#mermaid-svg-LvQKwShI02EOdou4 .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-LvQKwShI02EOdou4 .classTitle{font-weight:bolder;}#mermaid-svg-LvQKwShI02EOdou4 .node rect,#mermaid-svg-LvQKwShI02EOdou4 .node circle,#mermaid-svg-LvQKwShI02EOdou4 .node ellipse,#mermaid-svg-LvQKwShI02EOdou4 .node polygon,#mermaid-svg-LvQKwShI02EOdou4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LvQKwShI02EOdou4 .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-LvQKwShI02EOdou4 g.clickable{cursor:pointer;}#mermaid-svg-LvQKwShI02EOdou4 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-LvQKwShI02EOdou4 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-LvQKwShI02EOdou4 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-LvQKwShI02EOdou4 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-LvQKwShI02EOdou4 .dashed-line{stroke-dasharray:3;}#mermaid-svg-LvQKwShI02EOdou4 #compositionStart,#mermaid-svg-LvQKwShI02EOdou4 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #compositionEnd,#mermaid-svg-LvQKwShI02EOdou4 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #dependencyStart,#mermaid-svg-LvQKwShI02EOdou4 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #dependencyStart,#mermaid-svg-LvQKwShI02EOdou4 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #extensionStart,#mermaid-svg-LvQKwShI02EOdou4 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #extensionEnd,#mermaid-svg-LvQKwShI02EOdou4 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #aggregationStart,#mermaid-svg-LvQKwShI02EOdou4 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 #aggregationEnd,#mermaid-svg-LvQKwShI02EOdou4 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-LvQKwShI02EOdou4 .edgeTerminals{font-size:11px;}#mermaid-svg-LvQKwShI02EOdou4 :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} «interface» Product Create() ConcreteProductA Create() ConcreteProductB Create() Factroy CreateProduct() : Product 3.3 代码示例
3.3.1 设计
定义一个抽象产品Product定义三个具体产品ConcreteProductA、ConcreteProductB、ConcreteProductC 它们各自的Get()方法会访问它本身 定义一个简单工厂 简单工厂的CreateProduct()方法会返回一个产品 调用 实例化一个简单工厂用简单工厂创建一个产品用产品的Get()方法查询结果
3.3.2 代码 package mainimport (fmt )type Product interface {Get() }type ConcreteProductA struct {Name stringKind string }func (c *ConcreteProductA) Get() {fmt.Printf(%v, c) }type ConcreteProductB struct {Name stringKind string }func (c *ConcreteProductB) Get() {fmt.Printf(%v, c) }type ConcreteProductC struct {Name stringKind string }func (c *ConcreteProductC) Get() {fmt.Printf(%v, c) }type Factroy struct { }func (f *Factroy) CreateProduct(myType int64, name string) Product {switch myType {case 1:return ConcreteProductA{Name: name,Kind: A,}case 2:return ConcreteProductB{Name: name,Kind: B,}case 3:return ConcreteProductC{Name: name,Kind: C,}}return nil }func main() {factory : Factroy{}product : factory.CreateProduct(1, nginx)product.Get() } 输出 {Name:nginx Kind:A}3.3.3 类图 #mermaid-svg-pgGrkIsf9QXRjm6M {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-pgGrkIsf9QXRjm6M .error-icon{fill:#552222;}#mermaid-svg-pgGrkIsf9QXRjm6M .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pgGrkIsf9QXRjm6M .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-pgGrkIsf9QXRjm6M .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pgGrkIsf9QXRjm6M .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pgGrkIsf9QXRjm6M .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pgGrkIsf9QXRjm6M .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pgGrkIsf9QXRjm6M .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pgGrkIsf9QXRjm6M .marker.cross{stroke:#333333;}#mermaid-svg-pgGrkIsf9QXRjm6M svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pgGrkIsf9QXRjm6M g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-pgGrkIsf9QXRjm6M g.classGroup text .title{font-weight:bolder;}#mermaid-svg-pgGrkIsf9QXRjm6M .nodeLabel,#mermaid-svg-pgGrkIsf9QXRjm6M .edgeLabel{color:#131300;}#mermaid-svg-pgGrkIsf9QXRjm6M .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-pgGrkIsf9QXRjm6M .label text{fill:#131300;}#mermaid-svg-pgGrkIsf9QXRjm6M .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-pgGrkIsf9QXRjm6M .classTitle{font-weight:bolder;}#mermaid-svg-pgGrkIsf9QXRjm6M .node rect,#mermaid-svg-pgGrkIsf9QXRjm6M .node circle,#mermaid-svg-pgGrkIsf9QXRjm6M .node ellipse,#mermaid-svg-pgGrkIsf9QXRjm6M .node polygon,#mermaid-svg-pgGrkIsf9QXRjm6M .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pgGrkIsf9QXRjm6M .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-pgGrkIsf9QXRjm6M g.clickable{cursor:pointer;}#mermaid-svg-pgGrkIsf9QXRjm6M g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-pgGrkIsf9QXRjm6M g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-pgGrkIsf9QXRjm6M .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-pgGrkIsf9QXRjm6M .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-pgGrkIsf9QXRjm6M .dashed-line{stroke-dasharray:3;}#mermaid-svg-pgGrkIsf9QXRjm6M #compositionStart,#mermaid-svg-pgGrkIsf9QXRjm6M .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #compositionEnd,#mermaid-svg-pgGrkIsf9QXRjm6M .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #dependencyStart,#mermaid-svg-pgGrkIsf9QXRjm6M .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #dependencyStart,#mermaid-svg-pgGrkIsf9QXRjm6M .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #extensionStart,#mermaid-svg-pgGrkIsf9QXRjm6M .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #extensionEnd,#mermaid-svg-pgGrkIsf9QXRjm6M .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #aggregationStart,#mermaid-svg-pgGrkIsf9QXRjm6M .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M #aggregationEnd,#mermaid-svg-pgGrkIsf9QXRjm6M .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-pgGrkIsf9QXRjm6M .edgeTerminals{font-size:11px;}#mermaid-svg-pgGrkIsf9QXRjm6M :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} «interface» Product Get() ConcreteProductA Name Kind Cet() ConcreteProductB Name Kind Get() ConcreteProductC Name Kind Get() Factroy CreateProduct() : Product
- 上一篇: 荣欣建设集团有限公司网站用凡科帮别人做网站
- 下一篇: 容桂电子商务网站建设网站新站
相关文章
-
荣欣建设集团有限公司网站用凡科帮别人做网站
荣欣建设集团有限公司网站用凡科帮别人做网站
- 技术栈
- 2026年03月21日
-
荣欣建设集团有限公司网站江西建设局网站
荣欣建设集团有限公司网站江西建设局网站
- 技术栈
- 2026年03月21日
-
荣成做网站微信做购物网站怎么抽佣
荣成做网站微信做购物网站怎么抽佣
- 技术栈
- 2026年03月21日
-
容桂电子商务网站建设网站新站
容桂电子商务网站建设网站新站
- 技术栈
- 2026年03月21日
-
容桂免费网站建设公司手机微网站
容桂免费网站建设公司手机微网站
- 技术栈
- 2026年03月21日
-
容桂网站建设联系方式动态背景设置网站
容桂网站建设联系方式动态背景设置网站
- 技术栈
- 2026年03月21日






