惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
AWS News Blog
AWS News Blog
Google DeepMind News
Google DeepMind News
U
Unit 42
博客园 - 叶小钗
博客园 - 聂微东
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
美团技术团队
The Cloudflare Blog
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
S
Schneier on Security
C
Check Point Blog
Project Zero
Project Zero
The Hacker News
The Hacker News
Scott Helme
Scott Helme
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cisco Talos Blog
Cisco Talos Blog
P
Privacy International News Feed
SecWiki News
SecWiki News
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
H
Help Net Security
TaoSecurity Blog
TaoSecurity Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Last Week in AI
Last Week in AI
P
Privacy & Cybersecurity Law Blog
Forbes - Security
Forbes - Security
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
PCI Perspectives
PCI Perspectives
大猫的无限游戏
大猫的无限游戏
T
Troy Hunt's Blog
H
Hacker News: Front Page
Vercel News
Vercel News

博客园 - ®Geovin Du Dream Park™

go: Functional Options Pattern go:Timing Functions Pattern python: Timing Functions Pattern go: Steady-State Pattern python: Steady-State Pattern go: Handshaking Pattern python: Handshaking Pattern go: Fail-Fast Pattern python: Fail-Fast Pattern I go: Deadline Pattern python: Deadline Pattern go: Circuit-Breaker Pattern python: Circuit-Breaker Pattern go: Bulkheads Pattern python: Bulkheads Pattern go: Push & Pull Pattern python: Push & Pull Pattern python: Publish/Subscribe Pattern II go: Publish/Subscribe Pattern python: Publish/Subscribe Pattern go: Futures & Promises Pattern python: Futures & Promises Pattern go: Worker Pool Pattern go:Pipeline Pattern python: Worker Pool Pattern python: Pipeline Pattern go: Fan-Out Pattern python: Fan-Out Pattern go: Fan-In Pattern python: Fan-In Pattern Fan-In go: Producer Consumer  Pattern python: Producer Consumer Pattern go: Parallelism Pattern python: Parallelism Pattern go: Reactor Pattern python: Reactor Pattern go: Generators Pattern python: speech to text offline python: Generators Pattern go: Coroutines Pattern python:Coroutines Pattern go: Broadcast Pattern python: Broadcast Pattern python: Bounded Parallelism Pattern go: Bounded Parallelism Pattern python: N-Barrier Pattern go: N-Barrier Pattern python: Semaphore Pattern go: Semaphore Pattern python: Read-Write Lock Pattern go: Read-Write Lock Pattern python: Monitor Pattern go: Monitor Pattern python: Mutex Pattern go: Lock/Mutex Pattern Python: Condition Variable Pattern go:Condition Variable Pattern python: Registry Pattern python: Interpreter Pattern go: Interpreter Pattern go: Registry Pattern go: Memento Pattern go: Command Pattern go: State Pattern go:Template Method Pattern go: Strategy Pattern go: Visitor Pattern go: Observer Pattern go: Mediator Pattern go: Iterator Pattern go: Chain of Responsibility Pattern go: Proxy Pattern go:Decorator Pattern go: Facade Pattern go: Flyweight Pattern go: Composite Pattern go: Singleton Pattern go: Prototype Pattern go: Bridge Pattern go: Adapter Pattern go: Builder Pattern 密码进行加盐哈希 using CSharp,Python,Go,Java go: Abstract Factory Pattern go: Model,Interface,DAL ,Factory,BLL using mysql go: Factory Method Pattern go: goLang 在Windows环境搭建Go语言开发环境 CSharp: Parallel Extensions cpp: class python: 蝴蝶跟随鼠标 javascript: 中国历史人物热力分布图using echart javascript: 中国历史人物热力图 python: 初养龙虾微信纯文字自动回复using workBuddy python: object 入门 python: Factory Method Pattern python: Simple Factory Pattern python: Abstract Factory Pattern 区域化 代码 python: Null Object Pattern python: Builder Pattern python: Adapter Pattern
go: Simple Factory Pattern
®Geovin Du Dream Park™ · 2026-04-13 · via 博客园 - ®Geovin Du Dream Park™

 项目结构:

de41ba09-0117-46bf-8bd6-a6f62d8a5f12

/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:52
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : jewelry.go
*/
package simplefactory

// Jewelry 珠宝接口,所有珠宝产品都要实现该接口
type Jewelry interface {
	ShowInfo()            // 展示珠宝信息
	MaterialCheck()       // 材质检测(业务流程)
	CustomEngrave(string) // 定制刻字(业务流程)
}

// 珠宝类型常量,工厂用来判断生产哪种珠宝
const (
	JewelryTypeRing     = "ring"     // 钻戒
	JewelryTypeNecklace = "necklace" // 项链
	JewelryTypeBracelet = "bracelet" // 手镯
)



/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:53
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : ring.go
*/
package simplefactory

import "fmt"

// DiamondRing 钻戒(具体产品类)
type DiamondRing struct {
	Material string // 材质:铂金/18K金
	Carat    string // 钻石克拉
	Engrave  string // 刻字内容
}

// ShowInfo 展示钻戒信息
func (r *DiamondRing) ShowInfo() {
	fmt.Printf("【钻戒】材质:%s | 钻石克拉:%s | 刻字:%s\n", r.Material, r.Carat, r.Engrave)
}

// MaterialCheck 钻戒材质检测
func (r *DiamondRing) MaterialCheck() {
	fmt.Printf("✅ 钻戒材质检测完成:%s 材质合格,钻石无瑕疵\n", r.Material)
}

// CustomEngrave 钻戒定制刻字
func (r *DiamondRing) CustomEngrave(text string) {
	r.Engrave = text
	fmt.Printf("✍️ 钻戒刻字成功:%s\n", text)
}



/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:53
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : necklace.go
*/
package simplefactory

import "fmt"

// Necklace 项链(具体产品类)
type Necklace struct {
	Material string // 材质:黄金/白金
	Length   string // 项链长度
	Engrave  string // 刻字内容
}

// ShowInfo 展示项链信息
func (n *Necklace) ShowInfo() {
	fmt.Printf("【项链】材质:%s | 长度:%s | 刻字:%s\n", n.Material, n.Length, n.Engrave)
}

// MaterialCheck 项链材质检测
func (n *Necklace) MaterialCheck() {
	fmt.Printf("✅ 项链材质检测完成:%s 材质纯度达标\n", n.Material)
}

// CustomEngrave 项链定制刻字
func (n *Necklace) CustomEngrave(text string) {
	n.Engrave = text
	fmt.Printf("✍️ 项链刻字成功:%s\n", text)
}



/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:54
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : bracelet.go
*/
package simplefactory

import "fmt"

// Bracelet 手镯(具体产品类)
type Bracelet struct {
	Material string // 材质:银/翡翠
	Style    string // 款式:素圈/雕花
	Engrave  string // 刻字内容
}

// ShowInfo 展示手镯信息
func (b *Bracelet) ShowInfo() {
	fmt.Printf("【手镯】材质:%s | 款式:%s | 刻字:%s\n", b.Material, b.Style, b.Engrave)
}

// MaterialCheck 手镯材质检测
func (b *Bracelet) MaterialCheck() {
	fmt.Printf("✅ 手镯材质检测完成:%s 材质无裂纹\n", b.Material)
}

// CustomEngrave 手镯定制刻字
func (b *Bracelet) CustomEngrave(text string) {
	b.Engrave = text
	fmt.Printf("✍️ 手镯刻字成功:%s\n", text)
}


/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:54
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : factory.go
*/
package simplefactory

import "errors"

// JewelryFactory 珠宝加工厂(简单工厂类)
type JewelryFactory struct{}

// CreateJewelry 生产珠宝:传入珠宝类型,返回对应的珠宝产品
func (f *JewelryFactory) CreateJewelry(jewelryType string) (Jewelry, error) {
	switch jewelryType {
	case JewelryTypeRing:
		// 生产钻戒:默认配置
		return &DiamondRing{
			Material: "18K白金",
			Carat:    "1克拉",
		}, nil
	case JewelryTypeNecklace:
		// 生产项链:默认配置
		return &Necklace{
			Material: "足金",
			Length:   "45cm",
		}, nil
	case JewelryTypeBracelet:
		// 生产手镯:默认配置
		return &Bracelet{
			Material: "S999纯银",
			Style:    "素圈",
		}, nil
	default:
		return nil, errors.New("不支持生产该类型珠宝")
	}
} 

调用:

/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述: Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:55
# User      :  geovindu
# Product   : GoLand
# Project   : sudydemo
# File      : simplefactorybll.go
*/
package bll

import (
	"sudydemo/simplefactory"
)

// 显示示例
func SimpleFactoryMain() {
	// 1. 初始化珠宝加工厂(工厂实例)
	factory := &simplefactory.JewelryFactory{}
	println("========== 珠宝店下单流程 ==========\n")

	// ==================== 订单1:生产钻戒 ====================
	ring, err := factory.CreateJewelry(simplefactory.JewelryTypeRing)
	if err != nil {
		panic(err)
	}
	ring.MaterialCheck()       // 材质检测
	ring.CustomEngrave("永浴爱河") // 定制刻字
	ring.ShowInfo()            // 展示成品
	println()

	// ==================== 订单2:生产项链 ====================
	necklace, err := factory.CreateJewelry(simplefactory.JewelryTypeNecklace)
	if err != nil {
		panic(err)
	}
	necklace.MaterialCheck()
	necklace.CustomEngrave("平安喜乐")
	necklace.ShowInfo()
	println()

	// ==================== 订单3:生产手镯 ====================
	bracelet, err := factory.CreateJewelry(simplefactory.JewelryTypeBracelet)
	if err != nil {
		panic(err)
	}
	bracelet.MaterialCheck()
	bracelet.CustomEngrave("健康顺遂")
	bracelet.ShowInfo()
}

输出:

image

go mod init sudydemo

go get gorm.io/driver/sqlserver
go get gorm.io/driver/sqlite
go get gorm.io/driver/mysql
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:21
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : jewelry_config.go
*/
package config

// 珠宝默认配置,集中管理,便于扩展
var JewelryCfg = map[string]struct {
	Material string
}{
	"RING":     {Material: "18K白金"},
	"NECKLACE": {Material: "足金999"},
	"BRACELET": {Material: "S999纯银"},
}
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:21
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : jewelry.go
*/
package domain

// Jewelry 顶层抽象接口 【职责单一】
type Jewelry interface {
	MaterialCheck() error
	CustomEngrave(text string) error
	ShowInfo() string
}

// 珠宝类型常量
const (
	JewelryRing     = "RING"
	JewelryNecklace = "NECKLACE"
	JewelryBracelet = "BRACELET"
)

// BaseJewelry 基础模型
type BaseJewelry struct {
	Material   string
	EngraveStr string
}
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:22
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : jewelry_factory.go
*/
package factory

import (
	"errors"
	"godesginpattern/simplefactorone/config"
	"godesginpattern/simplefactorone/domain"
	"godesginpattern/simplefactorone/product"
)

// ===== 【修复核心】定义统一构造器签名 =====
type JewelryCreator func(material string) domain.Jewelry

// 产品构造器注册池(现在 100% 不报错)
var registerCreator = map[string]JewelryCreator{
	domain.JewelryRing: func(material string) domain.Jewelry {
		return product.NewDiamondRing(material)
	},
	domain.JewelryNecklace: func(material string) domain.Jewelry {
		return product.NewNecklace(material)
	},
	domain.JewelryBracelet: func(material string) domain.Jewelry {
		return product.NewBracelet(material)
	},
}

// JewelryFactory 简单工厂
type JewelryFactory struct{}

func NewJewelryFactory() *JewelryFactory {
	return &JewelryFactory{}
}

func (f *JewelryFactory) Create(jewelryType string) (domain.Jewelry, error) {
	creator, ok := registerCreator[jewelryType]
	if !ok {
		return nil, errors.New("不支持该珠宝类型:" + jewelryType)
	}
	cfg := config.JewelryCfg[jewelryType]
	return creator(cfg.Material), nil
}
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:22
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : ring.go
*/
package product

import (
	"errors"
	"godesginpattern/simplefactorone/domain"
)

type DiamondRing struct {
	domain.BaseJewelry
	Carat string
}

func NewDiamondRing(material string) *DiamondRing {
	return &DiamondRing{
		BaseJewelry: domain.BaseJewelry{
			Material: material,
		},
		Carat: "1克拉",
	}
}

func (d *DiamondRing) MaterialCheck() error {
	println("✅ 钻戒材质检测:", d.Material, "质检合格,钻石无瑕")
	return nil
}

func (d *DiamondRing) CustomEngrave(text string) error {
	if text == "" {
		return errors.New("刻字内容不能为空")
	}
	d.EngraveStr = text
	println("✍️ 钻戒定制刻字完成:", text)
	return nil
}

func (d *DiamondRing) ShowInfo() string {
	return "【钻戒】材质:" + d.Material + "  克拉:" + d.Carat + "  刻字:" + d.EngraveStr
}



/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:22
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : necklace.go
*/
package product

import (
	"errors"
	"godesginpattern/simplefactorone/domain"
)

type Necklace struct {
	domain.BaseJewelry
	Length string
}

func NewNecklace(material string) *Necklace {
	return &Necklace{
		BaseJewelry: domain.BaseJewelry{Material: material},
		Length:      "45cm",
	}
}

func (n *Necklace) MaterialCheck() error {
	println("✅ 项链材质检测:", n.Material, "纯度达标")
	return nil
}

func (n *Necklace) CustomEngrave(text string) error {
	if text == "" {
		return errors.New("刻字内容不能为空")
	}
	n.EngraveStr = text
	println("✍️ 项链定制刻字完成:", text)
	return nil
}

func (n *Necklace) ShowInfo() string {
	return "【项链】材质:" + n.Material + "  长度:" + n.Length + "  刻字:" + n.EngraveStr
}


/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:22
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : bracelet.go
*/
package product

import (
	"errors"
	"godesginpattern/simplefactorone/domain"
)

type Bracelet struct {
	domain.BaseJewelry
	Style string
}

func NewBracelet(material string) *Bracelet {
	return &Bracelet{
		BaseJewelry: domain.BaseJewelry{Material: material},
		Style:       "古法素圈",
	}
}

func (b *Bracelet) MaterialCheck() error {
	println("✅ 手镯材质检测:", b.Material, "无裂纹瑕疵")
	return nil
}

func (b *Bracelet) CustomEngrave(text string) error {
	if text == "" {
		return errors.New("刻字内容不能为空")
	}
	b.EngraveStr = text
	println("✍️ 手镯定制刻字完成:", text)
	return nil
}

func (b *Bracelet) ShowInfo() string {
	return "【手镯】材质:" + b.Material + "  款式:" + b.Style + "  刻字:" + b.EngraveStr
}
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/18 22:23
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : jewelry_service.go
*/
package service

import "godesginpattern/simplefactorone/domain"
import "godesginpattern/simplefactorone/factory"

type JewelryService struct {
	fac *factory.JewelryFactory
}

func NewJewelryService(fac *factory.JewelryFactory) *JewelryService {
	return &JewelryService{fac: fac}
}

// Produce 完整业务链路:创建 -> 质检 -> 刻字
func (s *JewelryService) Produce(jewelryType, engStr string) (domain.Jewelry, error) {
	item, err := s.fac.Create(jewelryType)
	if err != nil {
		return nil, err
	}
	_ = item.MaterialCheck()
	_ = item.CustomEngrave(engStr)
	return item, nil
}
/*
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述: Simple Factory Pattern 简单工厂模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : goLang 2024.3.6 go 26.2
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/4/13 21:55
# User      :  geovindu
# Product   : GoLand
# Project   : godesginpattern
# File      : simplefactorybll.go

simplefactory/
├── jewelry.go       # 珠宝产品接口(所有珠宝的公共规范)
├── ring.go          # 钻戒产品(具体实现)
├── necklace.go      # 项链产品(具体实现)
├── bracelet.go      # 手镯产品(具体实现)
├── factory.go       # 珠宝加工厂(简单工厂类)
└── main.go          # 珠宝店(客户端,调用入口)
2.
simplefactory/
├── go.mod
├── main.go                 // 入口 + 模式选择交互
├── controller/
│   └── design_pattern_ctrl.go  // 你的枚举 + ShowExample
├── bll/
│   └── simplefactory_bll.go    // 业务层入口 SimpleFactoryMain
├── internal/
│   ├── domain/
│   │   └── jewelry.go          // 珠宝领域接口、常量
│   ├── product/
│   │   ├── ring.go
│   │   ├── necklace.go
│   │   └── bracelet.go
│   ├── factory/
│   │   └── jewelry_factory.go  // 企业级可注册简单工厂
│   └── service/
│       └── jewelry_service.go  // 业务流程编排
└── config/

	└── jewelry_config.go       // 配置解耦、无硬编码
*/
package bll

import (
	"fmt"
	"godesginpattern/simplefactorone/domain"
	"godesginpattern/simplefactorone/factory"
	"godesginpattern/simplefactorone/service"
)

// 2  显示示例
func SimpleFactoryMain() {
	fac := factory.NewJewelryFactory()
	svc := service.NewJewelryService(fac)

	// 模拟门店下单
	ring, _ := svc.Produce(domain.JewelryRing, "一生一世")
	neck, _ := svc.Produce(domain.JewelryNecklace, "富贵平安")
	brac, _ := svc.Produce(domain.JewelryBracelet, "吉祥如意")

	fmt.Println(ring.ShowInfo())
	fmt.Println(neck.ShowInfo())
	fmt.Println(brac.ShowInfo())
}

哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)