وبلاگ بلیان

C# - Gang Of Four - Design Patterns, Elements Of Reusable Object Oriented Software

جلد کتاب C# - Gang Of Four - Design Patterns, Elements Of Reusable Object Oriented Software

معرفی کتاب «C# - Gang Of Four - Design Patterns, Elements Of Reusable Object Oriented Software» نوشتهٔ Erich Gamma، Richard Helm، Ralph Johnson و John M. Vlissides، منتشرشده توسط نشر Addison-Wesley Professional در سال 1998. این کتاب در 551 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «C# - Gang Of Four - Design Patterns, Elements Of Reusable Object Oriented Software» در دستهٔ برنامه‌نویسی قرار دارد.

کتاب «Design Patterns: Elements of Reusable Object-Oriented Software» که با نام «کتاب گانگ آو فور» (Gang of Four) در میان برنامه‌نویسان شهرت یافته، یکی از تأثیرگذارترین و ماندگارترین آثار در تاریخ مهندسی نرم‌افزار است. این کتاب که توسط چهار نویسندهٔ برجسته تألیف شده، برای اولین بار در سال ۱۹۹۴ منتشر شد و به‌سرعت به مرجعی اساسی برای هر توسعه‌دهندهٔ نرم‌افزار تبدیل گردید.

دربارهٔ کتاب «Design Patterns»

کتاب «Design Patterns» یک مرجع جامع و کلاسیک در زمینهٔ طراحی نرم‌افزار شیء‌گرا است که در آن، نویسندگان به کاتالوگ‌نویسی ۲۳ الگوی طراحی (Design Pattern) پرداخته‌اند که هر کدام راه‌حلی ساده و کارآمد برای مسائل مکرر در طراحی نرم‌افزار ارائه می‌دهند. این الگوها که از سیستم‌های واقعی و مثال‌های عینی گردآوری شده‌اند، به طراحان اجازه می‌دهند تا نرم‌افزارهایی انعطاف‌پذیرتر، زیباتر و در نهایت، قابلیت استفادهٔ مجدد داشته باشند، بدون آنکه نیاز به بازطراحی راه‌حل‌ها از صفر باشد. کتاب با شرح این مفهوم آغاز می‌شود که الگوهای طراحی چیستند و چگونه می‌توانند در فرایند توسعه به کار گرفته شوند. سپس، هر یک از الگوها را با بیانی نظام‌مند معرفی، ارزیابی و دسته‌بندی می‌کند. سبک نگارش کتاب، برخلاف بسیاری از متون تخصصی، به گونه‌ای است که آن را به منبعی ارزشمند برای مطالعه و مرجع تبدیل کرده است. منتقدان، این اثر را «بنیادین» و «تعیین‌کننده» توصیف کرده‌اند؛ هرچند برخی به سنگینی و تئوریک بودن برخی بخش‌های آن و مثال‌های قدیمی و مبتنی بر زبان‌های «سی پلاس‌پلاس» و «اسمال‌تاک» اشاره دارند، اما همگی بر تأثیر شگرف آن بر صنعت نرم‌افزار صحه می‌گذارند. وجود پیشگفتاری از «گریدی بوچ» (Grady Booch)، از دیگر نام‌های بزرگ مهندسی نرم‌افزار، خود گواهی بر اعتبار و جایگاه والای این کتاب است. کتاب در دو بخش اصلی تدوین شده است: دو فصل آغازین به بررسی قابلیت‌ها و دام‌های برنامه‌نویسی شیء‌گرا می‌پردازند و فصول بعدی، کاتالوگ ۲۳ الگوی طراحی کلاسیک را شامل می‌شوند. نسخهٔ حاضر که توسط انتشارات «Addison-Wesley Professional» در سال ۱۹۹۸ منتشر شده، نسخهٔ ویژه‌ای بر روی لوح فشرده (CD) است که شامل نسخهٔ ابرمتن کامل کتاب به همراه قابلیت جستجوی پویا و کدهای قابل استفاده برای طراحان نرم‌افزار می‌باشد.

دربارهٔ نویسندگان

نویسندگان این کتاب که در دنیای برنامه‌نویسی با نام «گروه چهارنفره» یا «گانگ آو فور» (GoF) شناخته می‌شوند، همگی از اساتید و متخصصان برجستهٔ علوم رایانه هستند. «اریش گاما» (Erich Gamma)، مدیر فنی مرکز فناوری نرم‌افزار شرکت «آی‌بی‌ام» در زوریخ است و بعدها به عنوان یکی از خالقان «چارچوب جی‌یونیت» (JUnit) نیز شهرت یافت. «ریچارد هلم» (Richard Helm)، یکی از اعضای گروه مشاورهٔ فناوری شیءگرا در «آی‌بی‌ام» در استرالیاست. «رالف جانسون» (Ralph Johnson)، یکی از اعضای هیئت علمی گروه علوم کامپیوتر در دانشگاه «ایلینویز» است که به دلیل فعالیت‌های گسترده‌اش در زمینهٔ الگوهای طراحی شناخته می‌شود. «جان ویسایدز» (John Vlissides)، عضو گروه پژوهش در مرکز تحقیقات «آی‌بی‌ام» بود و تا پیش از مرگش در سال ۲۰۰۵، یکی از چهره‌های مؤثر در این حوزه به شمار می‌رفت. این چهار نفر به پاس نگارش این کتاب، در سال ۱۹۹۸ موفق به دریافت جایزهٔ «برتری در برنامه‌نویسی» از مجلهٔ معتبر «دکتر دابز» (Dr. Dobb's Journal) شدند.

چرا باید «Design Patterns» را بخوانید؟

  • ایجاد یک زبان مشترک در تیم‌های برنامه‌نویسی: مطالعهٔ این کتاب به اعضای تیم کمک می‌کند تا برای حل مسائل طراحی، از واژگانی مشترک و دقیق استفاده کنند. به‌کارگیری عباراتی مانند «الگوی استراتژی» یا «کارخانه» به جای توضیحات طولانی، باعث صرفه‌جویی در زمان و کاهش خطاهای ارتباطی می‌شود.
  • یادگیری راه‌حل‌های جاافتاده و آزموده‌شده: به‌جای اینکه هر بار برای مسائل تکراری، راه‌حلی جدید اختراع کنید، این کتاب مجموعه‌ای از بهترین و کارآمدترین راه‌حل‌ها را که طی سال‌ها تجربهٔ عملی به دست آمده‌اند، در اختیار شما قرار می‌دهد.
  • افزایش قابلیت نگهداری و انعطاف‌پذیری نرم‌افزار: الگوهای ارائه‌شده در این کتاب به شما می‌آموزند که چگونه کدی بنویسید که در برابر تغییرات آینده مقاوم باشد و به‌راحتی بتوان آن را توسعه داد، بدون آنکه ساختار اصلی دچار آشفتگی شود.
  • درک عمیق‌تر مفاهیم طراحی شیء‌گرا: این کتاب فراتر از یک کاتالوگ ساده، به تشریح اصول بنیادین طراحی مانند «برنامه‌نویسی بر اساس رابط (Interface) و نه پیاده‌سازی» و «ترکیب به جای وراثت» می‌پردازد و درک شما را از مبانی عمیق‌تر می‌سازد.
  • مرجعی ماندگار برای تمام دوران حرفه‌ای: مفاهیم بنیادین و الگوهای ارائه شده در این کتاب، حتی با ظهور زبان‌ها و چارچوب‌های جدید، همچنان معتبر و کاربرد دارند و آن را به منبعی تبدیل می‌کند که بارها و بارها می‌توانید به آن مراجعه کنید.

این کتاب برای چه کسانی مناسب است؟

این کتاب برای تمام توسعه‌دهندگان نرم‌افزار، معماران سیستم و دانشجویان علوم کامپیوتر که به‌دنبال ارتقای مهارت‌های طراحی خود هستند، یک منبع ضروری محسوب می‌شود. اگر با اصول برنامه‌نویسی شیء‌گرا آشنایی مقدماتی دارید و به‌دنبال درک روش‌های حرفه‌ای‌تر برای ساخت نرم‌افزارهای قابل اعتماد و مقیاس‌پذیر هستید، این کتاب راهنمای ارزشمندی برای شما خواهد بود. همچنین برای برنامه‌نویسانی که با زبان‌هایی مانند «جاوا»، «سی‌شارپ» یا «سی پلاس‌پلاس» کار می‌کنند، بسیار مفید است، هرچند مثال‌های کتاب عمدتاً بر پایهٔ «سی پلاس‌پلاس» و «اسمال‌تاک» نوشته شده‌اند.

سوالات متداول

آیا مطالب کتاب «Design Patterns» با وجود گذشت سال‌ها، هنوز هم به‌روز و کاربرد دارد؟

بله، اصول و مفاهیم بنیادین مطرح‌شده در این کتاب، فارغ از تغییر زبان‌های برنامه‌نویسی، همچنان پایه‌های طراحی نرم‌افزار را تشکیل می‌دهند. بسیاری از منتقدان و معماران نرم‌افزار، این کتاب را یک منبع «جاودان» می‌دانند که به مثابهٔ دستور زبان طراحی نرم‌افزار عمل می‌کند و هرگز کهنه نمی‌شود.

آیا برای خواندن این کتاب، به یک زبان برنامه‌نویسی خاص نیاز دارم؟

خیر، اگرچه مثال‌های کد در این کتاب به زبان‌های «سی پلاس‌پلاس» و «اسمال‌تاک» نوشته شده‌اند، اما اصول و الگوها به‌گونه‌ای بیان شده‌اند که برای برنامه‌نویسان هر زبان شیء‌گرای دیگری مانند «جاوا»، «سی‌شارپ» یا «پایتون» نیز قابل‌درک و استفاده است.

آیا این کتاب فقط یک مرجع برای جستجوی الگوهاست یا می‌توان آن را پشت سر هم خواند؟

بسیاری از خوانندگان و منتقدان، از جمله خود نویسندگان، این کتاب را به عنوان یک «مرجع» معرفی می‌کنند که برای جستجوی الگوی مناسب در زمان مواجهه با یک مسئلهٔ خاص، بسیار کارآمد است. با این حال، فصل‌های ابتدایی آن شامل مطالب تئوریک و ارزشمندی هستند که برای درک عمیق‌تر موضوع، مطالعهٔ پیاپی آنها نیز مفید خواهد بود.

Now on CD, this internationally acclaimed bestseller is more valuable than ever! Use the contents of the CD to create your own design documents and reusable components. The CD contains: 23 patterns you can cut and paste into your own design documents; sample code demonstrating pattern implementation; complete Design Patterns content in standard HTML format, with numerous hyperlinked cross-references; accessed through a standard web browser; Java-based dynamic search mechanism, enhancing online seach capabilities; graphical user environment, allowing ease of navigation. First published in 1995, this landmark work on object-oriented software design presents a catalog of simple and succinct solutions to common design problems. Created by four experienced designers, the 23 patterns contained herein have become an essential resource for anyone developing reusable object-oriented software. In response to reader demand, the complete text and pattern catalog are now available on CD-ROM. This electronic version of Design Patterns enables programmers to install the book directly onto a computer or network for use as an online reference for creating reusable object-oriented software. The authors first describe what patterns are and how they can help you in the design process. They then systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. All patterns are compiled from real-world examples and include code that demonstrates how they may be implemented in object-oriented programming languages such as C++ and Smalltalk. Readers who already own the book will want the CD to take advantage of its dynamic search mechanism and ready-to-install patterns.

Now on CD, this internationally acclaimed bestseller is more valuable than ever! Use the contents of the CD to create your own design documents and reusable components. The CD contains:

  • 23 patterns you can cut and paste into your own design documents
  • Sample code demonstrating pattern implementation
  • Complete Design Patterns content in standard HTML format, with numerous hyper-linked cross-references
  • Access through a standard web browser
  • Java-based dynamic search mechanism, enhancing online search capabilities
  • Graphical user environment, allowing ease of navigation

First published in 1995, this landmark work on object-oriented software design presents a catalog of simple and succinct solutions to common design problems. Created by four experienced designers, the 23 patterns contained herein have become an essential resource for anyone developing reusable object-oriented software. In response to reader demand, the complete text and pattern catalog are now available on CD-ROM.

The authors first describe what patterns are and how they help you in the design process. They then systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. All patterns are compiled from real-world examples and include code that demonstrates how they may be implemented in object-oriented programming languages such as C++ and Smalltalk. Readers who already own the book will want the CD to take advantage of its dynamic search mechanism and ready-to-install patterns.

The authors are internationally recognized experts in the object-oriented software field.


This seminal CD-ROM on software engineering patterns and reusability is based on Design Patterns Elements of Reusable Object-Oriented Software. The text is a classic in its field. Since it first appeared so long ago (1995), it has been discussed, commented upon and referenced in countless journals, magazine articles and related publications. Due to high demand and customer inquiries, the publisher has issued this publication in a modern format, not in the ancient linear style of Gutenberg, but in a hyperlinked, browsable format that foreshadows all publications to come.

awprofessional.com......Page 0 Design Patterns CD......Page 1 Table of Contents......Page 2 Design Patterns CD......Page 5 Related Books......Page 7 Preface to CD......Page 10 Preface to Book......Page 12 Foreword......Page 14 Guide to Readers......Page 15 Introduction......Page 16 A Case Study......Page 40 Creational Patterns......Page 72 Abstract Factory......Page 77 Builder......Page 85 Factory Method......Page 93 Prototype......Page 101 Singleton......Page 109 Discussion of Creational Patterns......Page 116 Structural Patterns......Page 118 Adapter......Page 120 Bridge......Page 130 Composite......Page 139 Decorator......Page 149 Facade......Page 157 Flyweight......Page 165 Proxy......Page 176 Discussion of Structural Patterns......Page 186 Behavioral Patterns......Page 188 Chain of Responsibility......Page 189 Command......Page 198 Interpreter......Page 207 Iterator......Page 219 Mediator......Page 232 Memento......Page 241 Observer......Page 249 State......Page 258 Strategy......Page 266 Template Method......Page 274 Visitor......Page 279 Discussion of Behavioral Patterns......Page 290 Conclusion......Page 295 Glossary......Page 302 Glossary......Page 306 Guide to Notation......Page 310 Foundation Classes......Page 314 Bibliography......Page 319 Bibliography......Page 326 Index......Page 335 Index......Page 337 Index......Page 340 Index......Page 346 Index......Page 348 Index......Page 351 Index......Page 353 Index......Page 355 Index......Page 356 Index......Page 357 Index......Page 360 Index......Page 361 Index......Page 362 Index......Page 364 Index......Page 365 Index......Page 367 Index......Page 370 Index......Page 371 Index......Page 373 Index......Page 376 Index......Page 378 Index......Page 379 Index......Page 380 Index......Page 381 Abstract Factory......Page 382 Memento......Page 393 Observer......Page 403 Factory Method......Page 424 Singleton......Page 434 A Case Study: Designing a Document Editor......Page 443 Flyweight......Page 485 Chain of Responsibility......Page 498 Facade......Page 510 Table of Contents......Page 519 Introduction......Page 522 Design Patterns: Elements of Reusable Object-Oriented Software......Page 415 "Now the entire text of Design patterns, including all 23 classic patterns, is available on CD. This electronic version gives you instant access to the patterns from your computer - locally, on the road, or across a network. ... Produced in HTML format and equipped with a Java search engine, the CD is heavily cross-referenced and can be searched quickly for words and phrases. The CD contains: 23 patterns you can cut and paste into your own design documents, sample code demonstating pattern implementation, complete Design patterns content in standard HTML format with numerous hyper-linked cross-references, access through a standard web browser, Java-based dynamic search mechanism, graphical user environment."--package Containing 23 patterns for those developing reusable object-oriented software, this CD on object-oriented software design presents a catalog of simple solutions to common design problems. It also systematically names, explains, evaluates, and catalogs recurring designs in object-oriented systems. Contains the entire text of the book "Design patterns". Enables patterns to be directly installed onto a computer and creates an architecture for using and building reusable components
دانلود کتاب C# - Gang Of Four - Design Patterns, Elements Of Reusable Object Oriented Software