وقتی صحبت از کتابی جهت یادگیری الگوهای طراحی ( نرم افزار ) میشه، یکی از کتابهایی که اغلب توصیه می شه کتاب Head First Design Patterns هست که در سال گذشته، ویراست دومش هم اومد. اگر با سری Head First آشنا باشین تم کتاب رو می دونید و اگرنه باید بگم که کتاب به شکلی داستانی، یک مسئله رو طرح می کنه و گام به گام برای حلش جلو می ره و به راه حل می رسه، البته گاهی هم مستقیم تر می ره سر الگو. فلسفه و دلیل استفاده از الگو رو بیان میکنه، معایب و تخطی های احتمالی از قوانین solid# یا پیچیدگی های ایجاد شده رو شرح می ده و بعد هم پیاده سازی کامل مسئله با الگو البته به زبان جاوا رو می نویسه و تقریبا خط به خط توضیح می ده. نکته ای که ضمنی گفتم اینه که کدهای کتاب به زبان جاواست. خوب طبیعتا می تونه هم حسن باشه هم عیب. برای جاوا کارها حسنه، برای کسانی که با جاوا آشنایی مختصری دارن (مثل من) یا با زبان های سی بیس مثل سی شارپ و c++ کار کردن هم تقریبا بدون مشکله، اما سایر دوستان ممکنه کمی از این جهت نیاز به مراجعه به منابع دیگه برای پیاده سازی داشته باشند. البته یک حسن ویژه برای جاوا کارها داره و اونم اینه که بعضی الگوها رو با قابلیت های زبان یا فریم ورک های مطرحش هم پیاده سازی کرده. برای من کتاب خوش خوان و قابل فهم بود. البته من خیلی برای قضاوت مناسب نیستم چون قبلا دوره ای برای یادگیری الگوهای طراحی رو گذرونده بودم اما با این همه به نظرم کتاب به خوبی مفهوم رو رسونده. باید متذکر بشم که کتاب همه ۲۳ الگو رو در ۱۴ فصل نیاورده، هرچند به باقی مونده الگوها در ضمیمه به صورت مختصر آورده، مسئله ای که حل می کنند و معایب و مزایا رو لیست کرده، کلاس دیاگرام رو ترسیم کرده اما وارد جزییات پیاده سازی نشده. تقریبا برای هر الگوی مانده (و به قول خودش کم کاربرد) دو صفحه اختصاص داده. در مجموع کتاب جذابیه و اگر علاقه دارین با الگوهای طراحی بیشتر (یا اگر اصلا آشنا نیستین، تازه) آشنا بشین، این کتاب رو به عنوان گام اول توصیه می کنم. قطعا گامهای بعدی GoF و بعد منبعی در زبانی هست که با اون کد می زنید هست.