1. برج پیٹرن کیا ہے

1.1 تعریف اور تصور

برج پیٹرن یا برج پیٹرن کے نام سے معروف، یہ ایک قسم کا ساختی ڈیزائن پیٹرن ہے جو تجربہ اور عمل کو الگ کرتا ہے، جو انہیں الگ تھلگ ہونے دیتا ہے۔ سادہ الفاظ میں برج پیٹرن ایک حل ہے جو تجربہ کو عمل سے الگ کرتا ہے۔

1.2 برج پیٹرن کا مقصد اور اثرات

برج پیٹرن کا بنیادی مقصد ہوتا ہے کہ تجربہ حصے کو اپنے عمل حصے سے الگ کرے تاکہ یہ انفرادی طور پر تبدیل اور بڑھ سکیں۔ یہ ایک انتہائی موثر طریقہ ہے جو ایک مضامینہ برج کلاس قائم ہوتی ہے جو ایک مضبوط عمل کلاس سے منسلک ہوتی ہے۔

2. برج پیٹرن کی خصوصیات اور فوائد

برج پیٹرن کی کچھ اہم خصوصیات اور فوائد شامل ہیں:

  • نظامی قابلیت بڑھانا۔ تجربہ اور عمل دونوں کو الگ الگ فصل دے سکتا ہے بغیر ایک دوسرے پر اثر انداز ہونے کے۔
  • کھلا/بند اصول کے مطابقت۔ تجربہ کا حصہ اور عمل کا حصہ دونوں الگ الگ فصل دے سکتے ہیں بغیر ایک دوسرے پر اثر انداز ہونے کے۔
  • حکایت پوری طرح سے مشترکہ کرنا جو بروکار کو تفصیلات کو صارف سے چھپانے کی اجازت دیتا ہے۔

3. برج پیٹرن کے عمل کو شناخت کرنے کی امکانات

  • وقت جب آپ چاہتے ہیں کہ کسی پیچیدہ شے کی تجربہ سے الگ الگ عمل سے تجربہ کرنا چاہتے ہیں، برج پیٹرن استعمال کیا جا سکتا ہے۔ یہ موجودہ کوڈ کی کارکردگی پر مثبت اثر ڈال سکتا ہے، خصوصاً جب پروگرام صرف رن ٹائم پر ایک شے کا حصہ استعمال کرتا ہو۔
  • جب آپ کو مخصوص عمل کی حالتوں کو بہت سی شےوں کے درمیان تقسیم کرنا ہوتا ہے، لیکن برائے بروقت چلانے والے کوڈ کے لئے، وہ آزاد کلاسوں کی طرح نظر آنا چاہئیں۔

4. برج پیٹرن کا گولینگ میں عمل

4.1 UML کلاس خوبصورتی کی تعارف

برج پیٹرن Golang میں

4.2 تفصیلی عمل کی اقدامات

4.2.1 انتہائی کردار سماجی چھالوں کی تعریف

پہلے، ہم ایک DieawAPI انٹرفیس کی تعریف کرتے ہیں، مخصوص کوڈ مندرجہ ذیل ہے:

// انچ تربیح وظیفہ DieawAPI
type DrawAPI interface {
    DrawACircle(radius, x, y int)
}

4.2.2 مستقل کردار کلاس لاگو کریں

پھر، ہم دو کلاسیں تعین کرتے ہیں، ریڈسرکل اور بلوسرکل، جو DrawAPI انٹرفیس میں میتھڈز کو پورا کرتی ہیں:

// مستقل روی کردار کلاس
type RedCircle struct {}

func (c *RedCircle) DrawACircle(radius, x, y int) {
    // لال رنگ کے دائرے کی خود کی منطق
}

type BlueCircle struct {}

func (c *BlueCircle) DrawACircle(radius, x, y int) {
    // نیلا دائرہ بنانے کی خود کی منطق
}

4.2.3 انتہائی برج انٹرفیس کی تعریف

شکل کا برج انٹرفیس تعریف کریں:

// انتہائی برج انٹرفیس
type Shape interface {
    Draw()
}

4.2.4 مستقل برج کلاس کی تنصیب کریں

شکل کلاس کو منظار کریں، جو شیپ انٹرفیس کو پورا کرتی ہے اور DrawAPI انٹرفیس کی قسم کی ایک اشیاء شامل ہے:

// مستقل جھیل کلاس
type Circle struct {
    x, y, radius int
    drawAPI      DrawAPI
}

func (c *Circle) Draw() {
    c.drawAPI.DrawACircle(c.radius, c.x, c.y)
}

4.2.5 گاہک اعتراضی مثال

func main() {
    redCircle := &Circle{100, 100, 10, new(RedCircle)}
    blueCircle := &Circle{100, 100, 10, new(BlueCircle)}

    redCircle.Draw()
    blueCircle.Draw()
}

اس طرح، ہم نے گولینگ میں برج پیٹرن کی تنصیب کر دی ہے۔