Wednesday, April 11, 2007

Design Patterns

پیشینه الگوهای طرّاحی[1]

الگوهای طراحی از کاری از کریستوفر الکساندر[2] در دهه 1970 میلادی منشأ می‌گیرند. او با نوشتن دو کتاب « زبان الگویی»[3] در سال 1977 و « روش‌ِ بی‌کران ساختن »[4] در سال 1979 الگوهای طراحی را مستند نمود. تا سال 1987 تغییرات زبانی کمی در الگوها به وجود آمد تا این‌که در گردهمایی برنامه‌ها ، زبان‌‌ها و سامانه‌های شی‌گرا [5] مقالات و ارائه مطالب بسیاری در مورد این مبحث منتشر شدند. در سال 1995 اریک گاما[6] ، ریچارد هِلم[7] ، رالف جانسون[8] و جان ولیسیدز[9] کتاب «الگوهای طراحی : عناصر یک نرم‌افزار شی‌گرا با قابلیت استفاده مجدد»[10] را انتشار دادند که به تبع آن کتب‌ها و مقالات بسیاری در این ‌باره به چاپ رسیدند.

چرا الگوهای طرّاحی به وجود آمدند؟

يکي از دلايلي که محققان علوم رايانه اي آغاز به شناخت الگوهاي طرّاحي شدند اين بود که شما اگر یک برنامه‌نویس تنها هستید بتوانید به راحتی مطمئن باشید که برنامه‌ای کارا و خوانا ، امّا در عین حال ساده ، نوشته‌اید. در آغاز ممکن است شما با دیدن اسم الگوی طرّاحی احساس خوبی نسبت به این اسم نداشته باشید امّا در واقع این کار برای نوشتن یک برنامه شی‌گرا[11] با قابلیت استفاده مجدد[12] بسیار مناسب است. به بیانی دیگر الگوهای طراحی این کمک را به ما می‌نمایند که اشیای[13] مختلف را ، بدون اینکه تداخلی یا درگیری پیش آید ، با هم مرتبط نمائیم .

برای اینکه بتوانید از یک الگوی طرّاحی استفاده نمائید باید سه مرحله زیر را قبول کنید:

1- موافقت

2- تشخیص

3- درونی‌سازی

نخست بایستی با اندیشه کلّی حاکم بر الگوهای طرّاحی موافق باشید. پس از آن با تشخیص این‌که در چه جایی صلاح است که از این الگوها استفاده کنید می‌توانید این آن‌ها را وارد برنامه‌تان نمائید

.



[1] Design Patterns

[2] Christopher Alexander

[3] A Pattern Language

[4] A Timeless Way of Building

[5] OOPSLA (conference on object-oriented programming systems, languages and applications).

[6] Erich Gamma

[7] Richard Helm

[8] Ralph Johnson

[9] John Vlissides

[11] Object Oriented (OO)

[12] Reusability

[13] Objects

منابع و مآخذ:

http://www.csc.calpoly.edu/%7Edbutler/tutorials/winter96/patterns/objectives.htmJames W. Cooper , Introduction to Design Patterns in C# , IBM T J Watson Research Center , February 1, 2002

Jimmy Nilsson , Applying Domain-Driven Design and Patterns: With Examples in C# and .NET, 1/e , Addison Wesley Professional , May 08, 2006

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home