1. ٹیمپلیٹ میتھڈ پیٹرن کیا ہے؟
سافٹ ویئر ڈویلپمنٹ میں، ٹیمپلیٹ میتھڈ پیٹرن ایک بہاوی سمتیں کی ڈیزائن پیٹرن ہے جو کسی الگورتھم کی ہڈی کو تعین کرتا ہے اور کچھ قدم بعد میں ذیلی کلاسوں میں تنصیب کرنے کا امکان فراہم کرتا ہے۔ یہ ذیلی کلاسوں کو اپنے خصوصی قدموں پر خود کی برتری پر عمل کرنے کی اجازت دیتا ہے بغیر الگورتھم کی ساخت کو بدلے۔
2. ٹیمپلیٹ میتھڈ پیٹرن کی خصوصیات اور فوائد
ٹیمپلیٹ میتھڈ پیٹرن کی خصوصیات اور فوائد مندرجہ ذیل ہیں:
- کسی الگورتھم کی ہڈی کو تعین کرتا ہے اور قدموں کی تنصیب کو ذیلی کلاسوں پر منتقل کرتا ہے۔
- ذیلی کلاسوں کو الگ الگ قدموں کو دوبارہ تعین کرنے کی اجازت دیتا ہے الگورتھم کی ساخت بدلے بغیر۔
- الگورتھم کو بندرگ شناکت سے موزوں بنانے کا طریقہ فراہم کرتا ہے جو اسے مخصوص تنصیب کی تفصیلات سے آزاد بناتا ہے۔
- کوڈ کی نقل کو کم کرتا ہے اور کوڈ کی دوبارہ استعمال کو بہتر کرتا ہے۔
3. ٹیمپلیٹ میتھڈ پیٹرن کی عملی استعمال کے مثالیں
ٹیمپلیٹ میتھڈ پیٹرن کا سافٹ ویئر ڈویلپمنٹ میں بہت سارے عملی استعمال ہوتے ہیں۔ کچھ عام استعمالات کے مثالیں شامل ہیں:
- فریم ورکس میں ہک میتھڈز: ہک میتھڈز الگورتھم کے مختلف قدموں پر توسیع کرنے کے لیے توسیع نقطے فراہم کرتے ہیں، جو ذیلی کلاسوں کو ضرورت کے مطابق توسیع کرنے کا اجازت دیتے ہیں۔
- ڈیٹا بیس عملیات کے لیے ٹیمپلیٹ میتھڈز: مثلاً، ڈیٹا بیس عملیات میں، کنکٹ کرنا، ٹرانزیکشنز کھولنا، ایس کیو ایل اسٹیٹمنٹس کا اجراء کرنا، کنکشن بند کرنا وغیرہ، ذیلی کلاسوں کے ذریعے تنصیب ہونے والے ٹیمپلیٹ میتھڈز کے طور پر انجام دیے جا سکتے ہیں۔
- گرافکل یوزر انٹرفیس (GUI) ایپلیکیشنز میں واقعات کا ہینڈلنگ: GUI ایپلیکیشنز میں واقعات کا ہینڈلنگ عموماً کچھ قوانین اور پروسیس کا پیروی کرتا ہے، جو ٹیمپلیٹ میتھڈ پیٹرن کا استعمال کر کے انجام دیا جا سکتا ہے۔
4. گولینگ میں ٹیمپلیٹ میتھڈ پیٹرن کا انجامداد
4.1. یو ایم ایل کلاس ڈائیاگرام
4.2. مثال کا تعارف
ٹیمپلیٹ میتھڈ پیٹرن کی مثال میں، ایک انتہائی کلاس AbstractClass ہوتی ہے، جس میں ایک ٹیمپلیٹ میتھڈ TemplateMethod اور کچھ ابتدائی میتھڈز AbstractMethod1 اور AbstractMethod2 شامل ہوتے ہیں۔ Concrete ذیلی کلاسز ConcreteClass1 اور ConcreteClass2 AbstractClass سے وراثت حاصل کرتی ہیں اور خصوصی ابتدائی میتھڈز کو تنصیب کرتی ہیں۔
4.3۔ انجام دادنے کا قدم 1: ایک ابھی تک قدمپرستھ طربلا کلاس تعین کرنا
package main
import "fmt"
type AbstractClass interface {
TemplateMethod()
AbstractMethod1()
AbstractMethod2()
ConcreteMethod()
}
type BaseClass struct{}
func (b *BaseClass) TemplateMethod() {
b.AbstractMethod1()
b.AbstractMethod2()
b.ConcreteMethod()
}
func (b *BaseClass) ConcreteMethod() {
fmt.Println("Executing concrete method")
}
4.4. انجام دادنے کا قدم 2: خصوصی ٹیمپلیٹ کلاسز کی تنصیب کرنا
اسکے بعد ، ہمیں خصوصی ٹیمپلیٹ کلاسز کی تخلیق کرنے کی ضرورت ہوتی ہے، جیسے ConcreteClass1 اور ConcreteClass2، اور ان کلاسز میں ابتدائی میتھڈز کی تنصیب کرنی ہوتی ہے۔
type ConcreteClass1 struct {
*BaseClass
}
func NewConcreteClass1() *ConcreteClass1 {
return &ConcreteClass1{
&BaseClass{},
}
}
func (c *ConcreteClass1) AbstractMethod1() {
fmt.Println("Executing method1 of ConcreteClass1")
}
func (c *ConcreteClass1) AbstractMethod2() {
fmt.Println("Executing method2 of ConcreteClass1")
}
type ConcreteClass2 struct {
*BaseClass
}
func NewConcreteClass2() *ConcreteClass2 {
return &ConcreteClass2{
&BaseClass{},
}
}
func (c *ConcreteClass2) AbstractMethod1() {
fmt.Println("Executing method1 of ConcreteClass2")
}
func (c *ConcreteClass2) AbstractMethod2() {
fmt.Println("Executing method2 of ConcreteClass2")
}
4.5. انجام دادنے کا قدم 3: ابتدائی اور خصوصی میتھڈز کی تعین کرنا
ابتدائی طربلا کلاس میں ، ہمیں کچھ ابتدائی میتھڈز اور ابتدائی میتھڈز کو تعین کرنا ہوتا ہے۔ ابتدائی میتھڈز مخصوص ذیلی کلاسز کی طرف سے تنصیب کئے جاتے ہیں، اور TemplateMethod میں کنکرٹ میتھڈز کو بلایا جاتا ہے۔
4.6. انجام دادنے کا قدم 4: ٹیمپلیٹ میتھڈ کو استعمال کرنے والے گاہک
آخر میں، ہم گاہک کوڈ میں ٹیمپلیٹ میتھڈ کا استعمال کرکے مخصوص کاروباری منطق کو زیر عمل لا سکتے ہیں۔
func main() {
class1 := NewConcreteClass1()
class1.TemplateMethod()
class2 := NewConcreteClass2()
class2.TemplateMethod()
}
4.7. نفاذ کا مرحلہ 5: نتائج کی نفاذ
جب ہم اوپر دیئے گئے کوڈ کو چلائیں، ہمیں مندرجہ ذیل نتیجہ ملے گا:
ConcreteClass1 کے method1 کا اجراء کیا جا رہا ہے
ConcreteClass1 کے method2 کا اجراء کیا جا رہا ہے
مضمون میں method کا اجراء کیا جا رہا ہے
ConcreteClass2 کے method1 کا اجراء کیا جا رہا ہے
ConcreteClass2 کے method2 کا اجراء کیا جا رہا ہے
مضمون میں method کا اجراء کیا جا رے ہیں
اوپر دی گئی مثال میں ٹیمپلیٹ میتھڈ پیٹرن کا استعمال اور نتیجے کی کا تجربہ بیان کیا گیا ہے۔ ٹیمپلیٹ میتھڈ پیٹرن کے استعمال سے ہم کچھ عام عملیات کو ایک انتہائی کلاس میں چھپا سکتے ہیں اور مخصوص ذیلی کلاسز کو ان کی خصوصی عملیات کو پورا کرنے کی اجازت دی جاتی ہے، جس سے کوڈ کی دوبارہ استعمالیت اور توسیع میں اضافہ ہوتا ہے۔
نتیجہ
یہ سبق گولانگ میں ٹیمپلیٹ میتھڈ پیٹرن کا تجربہ، شمولیت، اور استعمالی مواقع کی تعریف شامل تھی، اور ایک نمونہ کی بنیاد پر عملیات بھی فراہم کی۔ اس مثال کے ذریعے، ہم گولانگ میں ٹیمپلیٹ میتھڈ پیٹرن کی کھیروں سمجھ سکتے ہیں۔