At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun.
You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code.
You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern.
Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.
With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.
If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.
وقتی صحبت از کتابی جهت یادگیری الگوهای طراحی (نرم افزار) میشه، یکی از کتابهایی که اغلب توصیه می شه کتاب Head First Design Patterns هست که در سال گذشته، ویراست دومش هم اومد. اگر با سری Head First آشنا باشین تم کتاب رو می دونید و اگرنه باید بگم که کتاب به شکلی داستانی، یک مسئله رو طرح می کنه و گام به گام برای حلش جلو می ره و به راه حل می رسه، البته گاهی هم مستقیم تر می ره سر الگو. فلسفه و دلیل استفاده از الگو رو بیان میکنه، معایب و تخطی های احتمالی از قوانین solid یا پیچیدگی های ایجاد شده رو شرح می ده و بعد هم پیاده سازی کامل مسئله با الگو البته به زبان جاوا رو می نویسه و تقریبا خط به خط توضیح می ده. نکته ای که ضمنی گفتم اینه که کدهای کتاب به زبان جاواست. خوب طبیعتا می تونه هم حسن باشه هم عیب. برای جاوا کارها حسنه، برای کسانی که با جاوا آشنایی مختصری دارن (مثل من) یا با زبان های سی بیس مثل سی شارپ و c++ کار کردن هم تقریبا بدون مشکله، اما سایر دوستان ممکنه کمی از این جهت نیاز به مراجعه به منابع دیگه برای پیاده سازی داشته باشند. البته یک حسن ویژه برای جاوا کارها داره و اونم اینه که بعضی الگوها رو با قابلیت های زبان یا فریم ورک های مطرحش هم پیاده سازی کرده. برای من کتاب خوش خوان و قابل فهم بود. البته من خیلی برای قضاوت مناسب نیستم چون قبلا دوره ای برای یادگیری الگوهای طراحی رو گذرونده بودم اما با این همه به نظرم کتاب به خوبی مفهوم رو رسونده. باید متذکر بشم که کتاب همه ۲۳ الگو رو در ۱۴ فصل نیاورده، هرچند به باقی مونده الگوها در ضمیمه به صورت مختصر آورده، مسئله ای که حل می کنند و معایب و مزایا رو لیست کرده، کلاس دیاگرام رو ترسیم کرده اما وارد جزییات پیاده سازی نشده. تقریبا برای هر الگوی مانده (و به قول خودش کم کاربرد) دو صفحه اختصاص داده. در مجموع کتاب جذابیه و اگر علاقه دارین با الگوهای طراحی بیشتر (یا اگر اصلا آشنا نیستین، تازه) آشنا بشین، این کتاب رو به عنوان گام اول توصیه می کنم. قطعا گامهای بعدی GoF و بعد منبعی در زبانی هست که با اون کد می زنید.
واقعاً جیگر و قابل فهم توضیح داده و اگه یه درکِ اولیهای داشته باشه آدم از برنامهنویسی و برنامهسازی، خیلی خیلی به کمکش میآد و واقعاً توی دیزاین به آدم کمک میکنه.
عالی عالی عالی. الگوها به صورت خام یاد بگیرین بعداً نمیتونین به صورت کاربردی ازشون استفاده کنید. اما اگه در حین پروژه به مشکل بر بخورین بعد برین سراغ الگوها تا مشکلتون رو حل کنند، دیگه ملکهٔ ذهنتون میشه و بهتر و عمیقتر یاد میگیرین. این کتاب چنین نقشی رو براتون بازی میکنه. اول شروع میکنه پروژه رو نوشتن، بعد مشکل رو عیناً نشونتون میده بعد هم راهحلاش رو با استفاده از الگوهای طراحی یادتون میده. در کنار این کتاب، کتاب GoF رو هم حتماً مرور کنید. راستی اینجا رو هم یه نگاهی بندازین به دردتون میخوره https://github.com/khajavi/Practical-...