{"product_id":"design-patterns-in-swift-5-learn-how-to-implement-the-gang-of-four-design-patterns-using-swift-5-improve-your-coding-skills-9781091686519","title":"Design Patterns in Swift 5: Learn how to implement the Gang of Four Design Patterns using Swift 5. Improve your coding skills.","description":"\u003cp\u003eSoftware developers need to solve various problems. Many times, these problems are the same or similar to the ones they've already encountered in other projects. \u003cbr\u003e\u003c\/p\u003eWouldn't it be great to apply the solution you've found instead of reinventing the wheel over and over again?\u003cbr\u003e\u003cp\u003eThat's precisely the reason why software design patterns exist. A design pattern is a standardized way to address a recurring problem. Relying on a proven strategy will not only save you time, but you can rest assured that it's indeed the right choice.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eDesign patterns are the result of a long evolution process. It all started with a book published in 1994 - yes, it's that old! - called \"Design Patterns - Elements of Reusable Object-Oriented Software.\" That's a quite tedious title, so we usually refer to it as \"the book by the gang of four.\" The gang consists of four renowned software engineers: Erich Gamma, Ralph Johnson, Richard Helm, and John Vlissides. They identified the most significant common issues that occurred in multiple projects and developed best practices to solve them.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eThe best part: these solutions are (programming) language-agnostic. You can use the design patterns with any object-oriented programming language.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eMany modern programming languages and frameworks have integrated the GoF patterns. You don't have to write additional code to support say the Iterator or the Observer.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eSwift is no exception: it provides many advanced language features and constructs such as type extensions, lazy initialization, and predefined protocols that let us adopt and integrate the design patterns into our projects easily.\u003cbr\u003e\u003c\/p\u003eThis book covers all these topics and teaches best practices you can apply in your upcoming projects.\u003cbr\u003e\u003cp\u003eWe'll talk about the benefits of understanding and applying the design patterns, the value they provide, and also about their limitations.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eThen, we delve into the \u003cstrong\u003ecreational design patterns\u003c\/strong\u003e: \u003cbr\u003e\u003c\/p\u003e\u003cul\u003e \u003cli\u003ethe Singleton, \u003c\/li\u003e \u003cli\u003ethe Prototype, \u003c\/li\u003e \u003cli\u003ethe Factory Method, \u003c\/li\u003e \u003cli\u003ethe Builder, \u003c\/li\u003e \u003cli\u003eand the Abstract Factory design pattern\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eWe're going to take a closer look at the \u003cstrong\u003estructural design patterns\u003c\/strong\u003e. We discuss: \u003cbr\u003e\u003c\/p\u003e\u003cul\u003e \u003cli\u003ethe Adapter, \u003c\/li\u003e \u003cli\u003ethe Decorator, \u003c\/li\u003e \u003cli\u003ethe Façade, \u003c\/li\u003e \u003cli\u003ethe Flyweight, \u003c\/li\u003e \u003cli\u003eand the Proxy pattern\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eIn the final part of this book, we discuss the \u003cstrong\u003ebehavioral design patterns\u003c\/strong\u003e: \u003cbr\u003e\u003c\/p\u003e\u003cul\u003e \u003cli\u003ethe Chain of Responsibility, \u003c\/li\u003e \u003cli\u003ethe Iterator, \u003c\/li\u003e \u003cli\u003ethe Observer, \u003c\/li\u003e \u003cli\u003eand we finish with the State design pattern\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eFor each design pattern, we discuss the following: \u003cbr\u003e\u003c\/p\u003e\u003cul\u003e \u003cli\u003eWhen to use the specific design pattern?\u003c\/li\u003e \u003cli\u003eHow can it be implemented using Swift 5?\u003c\/li\u003e \u003cli\u003eWhat are the challenges and pitfalls of using the given pattern?\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eThroughout the book, I provide \u003cstrong\u003ecoding examples that can be applied in real-world situations.\u003c\/strong\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eKároly Nyisztor is a veteran software engineer and instructor.\u003c\/p\u003e\u003cp\u003eHe has worked with large companies such as Apple, Siemens, and SAP. Károly has designed and built several enterprise frameworks, and he holds twelve patents related to inventions in the field of mobile computing.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eAfter 18 years, he left the corporate world to start his own business. \u003c\/p\u003e\u003cp\u003eSince 2016, he's fully committed to teaching. As an instructor, he aims to share his 20+ years of software development expertise. Károly teaches: \u003cbr\u003e\u003c\/p\u003e\u003cul\u003e \u003cli\u003eSoftware Architecture, \u003c\/li\u003e \u003cli\u003eObject-Oriented Programming and Design\u003c\/li\u003e \u003cli\u003eSwift and iOS Programming, \u003c\/li\u003e \u003cli\u003eand other, programming-related topics\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eYou can find Károly Nyisztor's courses and books on all major platforms including Amazon, Lynda, LinkedIn Learning, Pluralsight, Udemy, and iTunes.\u003c\/p\u003e\u003cbr\u003e","brand":"Independently Published","offers":[{"title":"Default Title","offer_id":50332232450322,"sku":"9781091686519","price":21.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_ca3988b0-8cc9-457a-9bf5-dbfd76b7720b.jpg?v=1727832245","url":"https:\/\/surprise-castle.myshopify.com\/products\/design-patterns-in-swift-5-learn-how-to-implement-the-gang-of-four-design-patterns-using-swift-5-improve-your-coding-skills-9781091686519","provider":"Surprise Castle","version":"1.0","type":"link"}