دیزاین پترن Interpreter

دیزاین پترن Interpreter

Behavioral DESIGN PATTERNS

یکی از زیرشاخه های الگوهای طراحی، Behavioral Design Patterns است. تمرکز و وظیفه اصلی این دیزاین پترن ها تعامل اشیاء و جداسازی وظایف آن ها  از یکدیگر است.

Interpreter Design Pattern

دیزاین پترن Interpreter یکی از زیرشاخه های الگوهای طراحی از نوع Behavioral است.

الگوی طراحی مترجم یک روشی است برای اینکه بتوانیم مانند یک زبان از قواعد ترجمه در کدهایمان استفاده کنیم.

سختش نکنیم! همانطور که Hello در زبان انگلیسی با سلام در زبان فارسی یک معنی میدهد، میتوانیم کدهایی را به نحوی اجرا کنیم که برامون تفاوتی نداشته باشه که چه کاری قراره انجام بدن.

میزان استفاده : کم

پیاده سازی دیزاین پترن Interpreter

کلاسی داریم به نام TerminalExpression و در مقابل کلاس NonterminalExpression را داریم.

class TerminalExpression : AbstractExpression
    {
        public override void Interpret(Context context)
        {
            Console.WriteLine("Terminal Expression Interpreter");
        }
    }
class NonterminalExpression : AbstractExpression
    {
        public override void Interpret(Context context)
        {
            Console.WriteLine("Nonterminal Expression Interpret");
        }
    }

در کدهای بالا ما دو کار متفاوت در متد Interpret میتوانیم انجام دهیم. هر دوی این کلاس ها از AbstractExpression ارث برده اند.

abstract class AbstractExpression
    {
        public abstract void Interpret(Context context);
    }

یک Context هم داریم که درصورتی که بخواهیم بصورت مشترک چیزی در این میان داشته باشیم از آن استفاده میکنیم.

internal class Context
    {
    }

حال اگر بخواهیم از این کلاس ها استفاده کنیم متد main را به این شکل مینویسیم.

static void Main(string[] args)
        {
            try
            {
                HelperClass.Context context = new HelperClass.Context();

                ArrayList list = new ArrayList();

                list.Add(new TerminalExpression());
                list.Add(new NonterminalExpression());
                list.Add(new TerminalExpression());
                list.Add(new TerminalExpression());

                foreach (AbstractExpression item in list)
                {
                    item.Interpret(context);
                }
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
            Console.ReadLine();
        }

ابتدا یک Context ایجاد کردیم. سپس دستورات را از نوع Terminalای و NonTerminalای در یک آرایه نگهداری میکنیم.
سپس جهت اجرای آنها یک حلقه میتواند به کمک ما بیاید تا آن ها را یکی یکی اجرا کنیم.

برای آموزش رایگان در مورد انواع دیزاین پترن ها و معماری های نرم افزار می توانید به این آموزش مراجعه نمایید:

معماری نرم افزار مهم ترین پترن های معماری نرم افزار

دیزاین پترن یا الگوی طراحی چیست؟

دیزاین پترن  در حقیقت راه حل مسائل طراحی نرم افزار هستند که بارها و بارها در دنیای توسعه نرم افزار تکرار میشوند. الگوهایی از طراحی قابل استفاده مجدد (reusable) و تعامل اشیاء.

پرینت صفحه

هولوسن

با من یاد بگیر

آموزش های بیشتر در وبسایت هولوسن : https://holosen.net

بدون نظر

**پرسش و پاسخ** سوال خود مطرح کنید.
امتیاز شما*