1. بلڈر پیٹرن کیا ہے
بلڈر پیٹرن ایک تخلیقاتی ڈیزائن پیٹرن ہے جو آپ کو پہلے بعد ایک مشکل اشیاء بنانے کی اجازت دیتا ہے۔ یہ ایک اشیاء کی تشکیل کو اس کی تشکیل سے الگ کرتا ہے اور مختلف خصوصیات اور پیرامیٹرز کے مختلف ترتیبات کو ضرورت کے مطابق تشکیل دینے کی اجازت دیتا ہے۔
2. بلڈر پیٹرن کی خصوصیات اور فوائد
بلڈر پیٹرن کی خصوصیات اور فوائد میں شامل ہیں:
- شے کی تخلیق و انضمام کے عمل کی طبقیت، کلائنٹ کوڈ کو مخصوص تشکیلی عمل سے الگ کرنا، یہ کردار زیادہ موزون اور قائم رکھتا ہے۔
- مختلف بلڈرز مختلف خصوصیات اور پیرامیٹرز کو تشکیل دینے کے لئے استعمال کیا جا سکتا ہے۔
- کوڈ کی پڑھائی اور قائم رکھنے کی سطح کو بہتر بناتا ہے، کوڈ کو سمجھنا اور استقرار دینا آسان بناتا ہے۔
- کنسٹرکٹر میں زیادہ سے زیادہ پیرامیٹرز کا استعمال نہ کرنے سے کوڈ مختصر ہو جاتا ہے۔
3. بلڈر پیٹرن کی درخت بندی کے سیناریوز
بلڈر پیٹرن مندرجہ ذیل سیناریوز کے لئے مناسب ہے:
- جب مشکل اشیاء کو قدم با قدم بنانے کی ضرورت ہو تو بلڈر پیٹرن کا استعمال کیا جا سکتا ہے۔
- جب اشیاء کی تشکیل کا عمل پیچیدہ ہو اور مختلف ترتیبات کی بہت ساری ترتیبیں ہوں تو بلڈر پیٹرن کا استعمال کیا جا سکتا ہے۔
- جب مختلف تشکیلوں کے ساتھ اشیاء کو بنانا ہو تو بلڈر پیٹرن کا استعمال کیا جا سکتا ہے۔
4. بلڈر پیٹرن کی گولینگ میں نفاذ
4.1 UML کلاس ڈائیگرام
4.2 بلڈر پیٹرن کا بنیادی ڈھانچہ
گولینگ میں، ہم انٹرفیسز اور سٹرکس استعمال کر کے بلڈر پیٹرن کا بنیادی ڈھانچہ نافذ کر سکتے ہیں۔ نیچے مثال کا کوڈ دیا گیا ہے:
type Builder interface {
setPartA()
setPartB()
setPartC()
getResult() *Product
}
type ConcreteBuilder struct {
product *Product
}
func (b *ConcreteBuilder) setPartA() {
b.product.partA = "Part A"
}
func (b *ConcreteBuilder) setPartB() {
b.product.partB = "Part B"
}
func (b *ConcreteBuilder) setPartC() {
b.product.partC = "Part C"
}
func (b *ConcreteBuilder) getResult() *Product {
return b.product
}
type Product struct {
partA string
partB string
partC string
}
func (p *Product) show() {
fmt.Println("Part A:", p.partA)
fmt.Println("Part B:", p.partB)
fmt.Println("Part C:", p.partC)
}
type Director struct {
builder Builder
}
func (d *Director) construct() {
d.builder.setPartA()
d.builder.setPartB()
d.builder.setPartC()
}
4.3 بلڈر پیٹرن کا استعمال کرتے ہوئے مشکل اشیاء کا تخلیق کرنا
نیچے ایک مثال کا کوڈ دیا گیا ہے جو دکھاتا ہے کہ بلڈر پیٹرن کا استعمال کرتے ہوئے مشکل اشیاء کو کیسے بنایا جاتا ہے:
builder := &ConcreteBuilder{}
director := &Director{builder: builder}
director.construct()
product := builder.getResult()
product.show()
اوپر دیئے گئے کوڈ میں، ہم نے ایک ConcreteBuilder اشیاء اور ایک Director اشیاء بنائیں۔ پھر، ہم نے Director اشیاء کو استعمال کر کے تخلیقی عمل کو قدم با قدم بنانے کے لئے کال کیا۔ آخر میں، ہم نے بلڈر اشیاء کی getResult میں تخلیق شدہ پروڈکٹ کو حاصل کیا اور اس کے مختلف حصے کو دکھانے کے لئے شو میں دکھایا۔
4.4 بلڈر پیٹرن اور دیگر ڈیزائن پیٹرنز کے درمیان تعلقات
بلڈر پیٹرن اور دیگر ڈیزائن پیٹرنز کے درمیان تعلقات میں شامل ہیں:
- بلڈر پیٹرن کو مضمون فیکٹری پیٹرن کے ساتھ جوڑ کر مختصر سلسلے کو پیدا کیا جا سکتا ہے۔
- بلڈر پیٹرن اور سنگلٹن پیٹرن کو مختصر سلسلے کو پیدا کرنے کے لئے استعمال کیا جا سکتا ہے۔
اس ٹیوٹوریل پر گولینگ فیکٹری میتھڈ پیٹرن کا خاتمہ ہوتا ہے۔ یہ ٹیوٹوریل پڑھ کر، آپ کو بلڈر پیٹرن کا بہتر سمجھ آئی ہو گی اور آپ کو یہ بھی معلوم ہو گا کہ گولینگ میں اس کی نفاذ کیسے کی جاتی ہے۔ میری امید ہے کہ یہ ٹیوٹوریل آپ کے تعلم کے لئے مددگار ہو گا!