更新生成者模式示例,添加木屋和砖房建造者实现,重构相关代码并增强可读性

This commit is contained in:
2025-12-09 21:55:32 +08:00
parent 29e554b670
commit cc736d524b
7 changed files with 394 additions and 21 deletions
+5 -4
View File
@@ -3,7 +3,7 @@ package main
import "fmt"
/* 实例
今天伟哥约自己在富士康工作的老乡出来喝酒,没想到老乡最近一直在加班。听说接了个大活,要同时为小米公司和苹果公司代工他们的笔记本电脑和手机生产业务。
今天汤宝宝约自己在富士康工作的老乡出来喝酒,没想到老乡最近一直在加班。听说接了个大活,要同时为小米公司和苹果公司代工他们的笔记本电脑和手机生产业务。
*/
// 抽象产品:手机
@@ -114,6 +114,7 @@ func newMiFactory() Factory {
return &MiFactory{name: "小米工厂"}
}
// 客户端代码
func client(factory Factory) {
phone := factory.CreatePhone()
laptop := factory.CreateLaptop()
@@ -132,7 +133,7 @@ func main() {
// 选择苹果工厂
factory = newAppleFactory()
fmt.Printf("伟哥选择了%s生产产品:\n", factory.(*AppleFactory).name)
fmt.Printf("汤宝宝选择了%s生产产品:\n", factory.(*AppleFactory).name)
client(factory)
fmt.Println()
@@ -141,7 +142,7 @@ func main() {
// 选择小米工厂
factory = newMiFactory()
fmt.Printf("伟哥选择了%s生产产品:\n", factory.(*MiFactory).name)
fmt.Printf("汤宝宝选择了%s生产产品:\n", factory.(*MiFactory).name)
client(factory)
fmt.Println("====== 抽象工厂模式结束 ======")
fmt.Println("\n====== 抽象工厂模式结束 ======")
}