Golangオブジェクト指向プログラミング-ファクトリパターン作成の例

説明

Golangの構造にはコンストラクターがなく、通常、ファクトリパターンを使用してこの問題を解決できます。

導入する

需要を見てください:

package main
type Student struce{
    
    
  Name string
  ...
}

ここでのStudentの最初の文字Sは大文字であるため、他のパッケージでStudentのインスタンスを作成する場合は、パッケージをインポートして、Student構造の変数(インスタンス)を直接作成するだけで済みます。しかし、ここに質問があります。最初の文字が小文字の場合はどうすればよいですか?->解決するファクトリモデル。

ファクトリパターンは、パッケージ間でインスタンスを作成します

student.go

package model

type student struct{
    
    
	Name string
	Age int
}

func NewStudent(name string,age int) *student{
    
    
	return &student{
    
    
		Name : name,
		Age : age,
	}
}

test.go

package main

import(
	"fmt"
	"go_code/OOP/model"
)

func main() {
    
    
	 
	stu := model.NewStudent("Casey",18)
	fmt.Println(*stu)
}

学生構造フィールドの名前がnameに変更された場合、正常にアクセスできますか?
解決策(Javaのgetterおよびsetterに類似)
student.go

package model

type student struct{
    
    
	name string
	Age int
}

func NewStudent(name string,age int) *student{
    
    
	return &student{
    
    
		name : name,
		Age : age,
	}
}

func (this *student) GetName()string{
    
    
	return this.name
}

test.go

package main

import(
	"fmt"
	"go_code/OOP/model"
)

func main() {
    
    
	 
	stu := model.NewStudent("Casey",18)
	fmt.Println(stu.GetName())
}

ブロガーのホームページへのリンク:https://blog.csdn.net/weixin_44736475
独創性は簡単ではありません、あなたが
それをサポートできることを願っています。記事があなたに役立つならば、3つのリンクをクリックすることを忘れないでください!❤️❤️❤️

おすすめ

転載: blog.csdn.net/weixin_44736475/article/details/114176256