1. IntroductionPart I: Creational Patterns 2. Builder
5. SingletonPart II: Structural Patterns 6. Adapter
12. ProxyPart III: Behavioral Patterns 13. Chain of Responsibility
17. Mediator18. Null Object
22. Template Method23. Visitor
24. Maybe MonadPart IV: Appendix
25. Appendix A: Functional Design Patterns
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 high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.