[05]ゴーデザインパターン:ビルダーモード(Builderパターン)

ビルダーモード

I.はじめに

単純な複数のオブジェクトを使用してモデルビルダ(Builderパターン)は、複雑なオブジェクトを構築するためにステップバイステップ。デザインパターンのこのタイプのオブジェクトを作成するための最良の方法を提供し、スキーマを作成します属します。

ビルダークラスは、最終的なオブジェクトを構築するためのステップバイステップになります。ビルダークラスは、他のオブジェクトとは無関係です。

第二に、コード

package main

import "fmt"

//电脑对象的建造
type Computer interface {
    //主板制造
    MakeCpu()
    //键盘制造
    MakeKeyBoard()
    //屏幕制造
    MakeScreen()
}

// 定义一个构建器
type Creator struct {
    computer Computer
}

// 创建一个电脑
func (d *Creator) Construct() *Computer {
    d.computer.MakeCpu()
    d.computer.MakeKeyBoard()
    d.computer.MakeScreen()
    return &d.computer
}

// 构建一个具体品牌的电脑
type HuaWeiComputer struct {
    Cpu      string
    KeyBoard string
    Screen   string
}

func (l *HuaWeiComputer) MakeCpu() {
    fmt.Println("主板构建中...")
    l.Cpu = "cpu"
}
func (l *HuaWeiComputer) MakeKeyBoard() {
    fmt.Println("键盘构建中...")
    l.KeyBoard = "keyboard"
}
func (l *HuaWeiComputer) MakeScreen() {
    fmt.Println("屏幕构建中...")
    l.Screen = "screen"
}

func main() {
    c := HuaWeiComputer{}
    d := Creator{computer: &c}
    computer := d.Construct()
    fmt.Printf("%+v", *computer)

}

完全なソースコード:https://gitee.com/ncuzhangben/GoStudy/tree/master/go-design-pattern/05-Builder

3:参考文献

1、https://www.runoob.com/design-pattern/builder-pattern.html

おすすめ

転載: www.cnblogs.com/0pandas0/p/12045180.html