Method chaining

Test Driven-Development-(TDD)
Setup-Fixture-Teardown

Method chaining یا زنجیره‌سازی متدها، یک الگوی برنامه‌نویسی است که در آن می‌توانید چندین متد را پشت سر هم صدا بزنید بدون اینکه نیاز به نوشتن متغیرهای موقتی داشته باشید. این الگو به طور گسترده در زبان‌هایی مانند C#، Java و Python استفاده می‌شود.

یک مثال ساده از Method chaining را در C# برای یک کلاس فرضی به شرح زیر می‌بینید:

				
					
using System;

class Calculator
{
    private int result;

    public Calculator()
    {
        this.result = 0;
    }

    public Calculator Add(int number)
    {
        this.result += number;
        return this;
    }

    public Calculator Subtract(int number)
    {
        this.result -= number;
        return this;
    }

    public Calculator Multiply(int number)
    {
        this.result *= number;
        return this;
    }

    public Calculator Divide(int number)
    {
        if (number == 0)
        {
            throw new ArgumentException("Cannot divide by zero.");
        }
        this.result /= number;
        return this;
    }

    public int GetResult()
    {
        return this.result;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // استفاده از Method chaining برای اعمال چندین عملیات روی یک شیء
        Calculator calc = new Calculator();
        int finalResult = calc.Add(5).Multiply(2).Subtract(3).Divide(1).GetResult();
        Console.WriteLine("Final Result: " + finalResult); // خروجی: 14
    }
}
				
			

در این مثال، کلاس `Calculator` دارای چندین متد برای اعمال عملیات مختلف است، و هرکدام از این متدها برای انجام عملیاتی (اضافه کردن، تفریق کردن، ضرب کردن، و تقسیم کردن) طراحی شده‌اند. تمامی این متدها به جز `GetResult` بازگشتی از نوع `Calculator` دارند که این امکان را به ما می‌دهد تا آن‌ها را به صورت پشت سر هم صدا بزنیم.

در `Main`، ابتدا یک شیء از کلاس `Calculator` ساخته شده و سپس با استفاده از Method chaining برروی آن عملیات‌های مختلف اعمال می‌شود. در نهایت، مقدار نهایی با استفاده از متد `GetResult` به دست آمده و چاپ می‌شود.