Design Patterns in . NET Core 3. 0: Reusable Approaches in C# and F# for Object-Oriented Software Design
معرفی کتاب «Design Patterns in . NET Core 3. 0: Reusable Approaches in C# and F# for Object-Oriented Software Design» نوشتهٔ Dmitri Nesteruk، منتشرشده توسط نشر Apress : Imprint: Apress در سال 2021. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
Implement design patterns in .NET Core 3 using the latest versions of the C# and F# languages. This book provides a comprehensive overview of the field of design patterns as they are used in today's developer toolbox. This new edition introduces topics such as Functional Builder, Asynchronous Factory Method, Generic Value Adapter, and new Composite Proxies, including one that attempts to solve the SoA/AoS problem. Using the C# and F# programming languages, Design Patterns in .NET Core 3 explores the classic design pattern implementations and discusses the applicability and relevance of specific language features for implementing patterns. You will learn by example, reviewing scenarios where patterns are applicable. MVP and patterns expert Dmitri Nesteruk demonstrates possible implementations of patterns, discusses alternatives and pattern inter-relationships, and illustrates the way that a dedicated refactoring tool (ReSharper) can be used to implement design patterns with ease. What You Will Learn Become familiar with the latest pattern implementations available in C# 8 and F# 5 Know how to better reason about software architecture Understand the process of refactoring code to patterns Refer to researched and proven variations of patterns Study complete, self-contained examples, including many that cover advanced scenarios Use the latest implementations of C# and Visual Studio/Rider/ReSharper Who This Book Is For Developers who have some experience in the C# language and want to expand their comprehension of the art of programming by leveraging design approaches to solving modern problems Table of Contents About the Author About the Technical Reviewer Introduction Part I: Introduction Chapter 1: The SOLID Design Principles Single Responsibility Principle Open-Closed Principle Liskov Substitution Principle Interface Segregation Principle Parameter Object Dependency Inversion Principle Chapter 2: The Functional Perspective Function Basics Functional Literals in C# Storing Functions in C# Functional Literals in F# Composition Functional-Related Language Features Part II: Creational Patterns Chapter 3: Builder Scenario Simple Builder Fluent Builder Communicating Intent Composite Builder Builder Parameter Builder Extension with Recursive Generics Lazy Functional Builder DSL Construction in F# Summary Chapter 4: Factories Scenario Factory Method Asynchronous Factory Method Factory Inner Factory Physical Separation Abstract Factory Delegate Factories in IoC Functional Factory Summary Chapter 5: Prototype Deep vs. Shallow Copying ICloneable Is Bad Deep Copying with a Special Interface Deep-Copying Objects Duplication via Copy Construction Serialization Prototype Factory Summary Chapter 6: Singleton Singleton by Convention Classic Implementation Lazy Loading and Thread Safety The Trouble with Singleton Singletons and Inversion of Control Monostate Multiton Summary Part III: Structural Patterns Chapter 7: Adapter Scenario Adapter Adapter Temporaries The Problem with Hashing Property Adapter (Surrogate) Generic Value Adapter Adapter in Dependency Injection Adapters in the .NET Framework Summary Chapter 8: Bridge Conventional Bridge Dynamic Prototyping Bridge Summary Chapter 9: Composite Grouping Graphic Objects Neural Networks Shrink Wrapping the Composite Composite Specification Summary Chapter 10: Decorator Custom String Builder Adapter-Decorator Multiple Inheritance with Interfaces Multiple Inheritance with Default Interface Members Dynamic Decorator Composition Static Decorator Composition Functional Decorator Summary Chapter 11: Façade Magic Squares Building a Trading Terminal An Advanced Terminal Where’s the Façade? Summary Chapter 12: Flyweight User Names Text Formatting Summary Chapter 13: Proxy Protection Proxy Property Proxy Value Proxy Composite Proxy: SoA/AoS Composite Proxy with Array-Backed Properties Virtual Proxy Communication Proxy Dynamic Proxy for Logging Summary Part IV: Behavioral Patterns Chapter 14: Chain of Responsibility Scenario Method Chain Broker Chain Summary Chapter 15: Command Scenario Implementing the Command Pattern Undo Operations Composite Commands (a.k.a. Macros) Functional Command Queries and Command-Query Separation Summary Chapter 16: Interpreter Numeric Expression Evaluator Lexing Parsing Using Lexer and Parser Interpretation in the Functional Paradigm Summary Chapter 17: Iterator Array-Backed Properties Let’s Make an Iterator Improved Iteration Iterator Adapter Summary Chapter 18: Mediator Chat Room Mediator with Events Introduction to MediatR Summary Chapter 19: Memento Bank Account Undo and Redo Using Memento for Interop Summary Chapter 20: Null Object Scenario Intrusive Approaches Null Object Virtual Proxy Null Object Dynamic Null Object Summary Chapter 21: Observer Observer Weak Event Pattern Event Streams Property Observers Basic Change Notification Bidirectional Bindings Property Dependencies Views Observable Collections Observable LINQ Declarative Subscriptions in Autofac Summary Chapter 22: State State-Driven State Transitions Handmade State Machine Switch-Based State Machine Encoding Transitions with Switch Expressions State Machines with Stateless Types, Actions, and Ignoring Transitions Reentrancy Again Hierarchical States More Features Summary Chapter 23: Strategy Dynamic Strategy Static Strategy Equality and Comparison Strategies Functional Strategy Summary Chapter 24: Template Method Game Simulation Functional Template Method Summary Chapter 25: Visitor Intrusive Visitor Reflective Printer Extension Methods? Functional Reflective Visitor Improvements What Is Dispatch? Dynamic Visitor Classic Visitor Implementing an Additional Visitor Acyclic Visitor Functional Visitor Summary Index Implement design patterns in .NET Core 3 using the latest versions of the C# and F♯ languages. This book provides a comprehensive overview of the field of design patterns as they are used in today's developer toolbox. This new edition introduces topics such as Functional Builder, Asynchronous Factory Method, Generic Value Adapter, and new Composite Proxies, including one that attempts to solve the SoA/AoS problem. Using the C# and F♯ programming languages, Design Patterns in .NET Core 3 explores the classic design pattern implementations and discusses the applicability and relevance of specific language features for implementing patterns. You will learn by example, reviewing scenarios where patterns are applicable. MVP and patterns expert Dmitri Nesteruk demonstrates possible implementations of patterns, discusses alternatives and pattern inter-relationships, and illustrates the way that a dedicated refactoring tool (ReSharper) can be used to implement design patterns with ease. What You Will Learn Become familiar with the latest pattern implementations available in C# 8 and F♯ 5 Know how to better reason about software architecture Understand the process of refactoring code to patterns Refer to researched and proven variations of patterns Study complete, self-contained examples, including many that cover advanced scenarios Use the latest implementations of C# and Visual Studio/Rider/ReSharper This book is for developers who have some experience in the C# language and want to expand their comprehension of the art of programming by leveraging design approaches to solving modern problems. Dmitri Nesteruk is a quantitative analyst, developer, course and book author, and an occasional conference speaker. His interests lie in software development and integration practices in the areas of computation, quantitative finance, and algorithmic trading. His technological interests include C# and C++ programming as well as high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP from 2009 to 2018
دانلود کتاب Design Patterns in . NET Core 3. 0: Reusable Approaches in C# and F# for Object-Oriented Software Design