Software Patterns Made Easy
()
About this ebook
Design patterns are just as complicated as writing code. They are solutions to a class of problems readily available for use for your code. Design patterns also allow you to share solutions other programmers have discovered.
Design Patterns Made Easy represent insightful solutions
Related to Software Patterns Made Easy
Related ebooks
Case Studies in Design Patterns Rating: 5 out of 5 stars5/5.NET Design Patterns Rating: 3 out of 5 stars3/550 C# Concepts Every Developer Should Know Rating: 0 out of 5 stars0 ratingsJava 8 to 21: Explore and work with the cutting-edge features of Java 21 (English Edition) Rating: 0 out of 5 stars0 ratingsPractical C++ Backend Programming: Crafting Databases, APIs, and Web Servers for High-Performance Backend Rating: 0 out of 5 stars0 ratingsEnterprise Applications with C# and .NET: Develop robust, secure, and scalable applications using .NET and C# (English Edition) Rating: 0 out of 5 stars0 ratingsThe Joy of JavaScript Rating: 4 out of 5 stars4/5JavaScript Domain-Driven Design Rating: 3 out of 5 stars3/5The Design Patterns Companion Rating: 0 out of 5 stars0 ratingsRESTful API Design - Best Practices in API Design with REST: API-University Series, #3 Rating: 5 out of 5 stars5/5Professional Java EE Design Patterns Rating: 0 out of 5 stars0 ratingsNode.js Design Patterns - Second Edition Rating: 4 out of 5 stars4/5Go Design Patterns Rating: 5 out of 5 stars5/5The Coder Habits: The #39# Habits of the Professional Programmer Rating: 5 out of 5 stars5/5Building Server-side and Microservices with Go: Building Modern Backends and Microservices Using Go, Docker and Kubernetes Rating: 0 out of 5 stars0 ratingsObject Design Style Guide Rating: 5 out of 5 stars5/5Ry's Git Tutorial Rating: 0 out of 5 stars0 ratingsTypeScript Design Patterns Rating: 0 out of 5 stars0 ratingsTest-Driven Java Development Rating: 0 out of 5 stars0 ratingsClean Code in JavaScript: Develop reliable, maintainable, and robust JavaScript Rating: 4 out of 5 stars4/5Domain Driven Design : How to Easily Implement Domain Driven Design - A Quick & Simple Guide Rating: 2 out of 5 stars2/5Seriously Good Software: Code that works, survives, and wins Rating: 5 out of 5 stars5/5Learning Object-Oriented Programming Rating: 4 out of 5 stars4/5Mastering JavaScript Design Patterns Rating: 4 out of 5 stars4/5Fundamentals of Software Engineering: Designed to provide an insight into the software engineering concepts Rating: 0 out of 5 stars0 ratingsDiary of a Software Craftsman Rating: 5 out of 5 stars5/5Programming Problems: A Primer for The Technical Interview Rating: 4 out of 5 stars4/5
Enterprise Applications For You
QuickBooks Online For Dummies, 2025 Edition Rating: 5 out of 5 stars5/5Scrivener Superpowers Rating: 0 out of 5 stars0 ratingsExcel All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsQuickBooks 2023 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsExcel Dashboards & Reports For Dummies Rating: 4 out of 5 stars4/5Some Future Day: How AI Is Going to Change Everything Rating: 0 out of 5 stars0 ratingsBitcoin For Dummies Rating: 4 out of 5 stars4/5Microsoft Excel 365 Bible Rating: 0 out of 5 stars0 ratingsExcel VBA Programming For Dummies Rating: 4 out of 5 stars4/5QuickBooks 2024 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsCompTIA Project+ Study Guide: Exam PK0-005 Rating: 0 out of 5 stars0 ratingsQuickBooks 2021 For Dummies Rating: 0 out of 5 stars0 ratingsDragon NaturallySpeaking For Dummies Rating: 0 out of 5 stars0 ratingsExcel 2021 Rating: 4 out of 5 stars4/5Scrivener For Dummies Rating: 4 out of 5 stars4/5QuickBooks Online For Dummies Rating: 0 out of 5 stars0 ratingsSalesforce.com For Dummies Rating: 3 out of 5 stars3/5Learning Microsoft Endpoint Manager: Unified Endpoint Management with Intune and the Enterprise Mobility + Security Suite Rating: 0 out of 5 stars0 ratingsMicrosoft Copilot For Dummies Rating: 0 out of 5 stars0 ratingsLearning AWS Rating: 4 out of 5 stars4/5Excel Macros For Dummies Rating: 3 out of 5 stars3/5Enterprise AI For Dummies Rating: 3 out of 5 stars3/5Microsoft 365 Excel For Dummies Rating: 0 out of 5 stars0 ratingsMicrosoft Power Platform A Deep Dive: Dig into Power Apps, Power Automate, Power BI, and Power Virtual Agents (English Edition) Rating: 0 out of 5 stars0 ratingsSQL 101 Crash Course: Comprehensive Guide to SQL Fundamentals and Practical Applications Rating: 5 out of 5 stars5/5Agile Project Management: Scrum for Beginners Rating: 4 out of 5 stars4/5
0 ratings0 reviews
Book preview
Software Patterns Made Easy - Justice Nanhou
Software Patterns
Made Easy
Justice Nanhou
Copyrights Reserved © 2021- Justice Nanhou
Table of Contents
Disclaimer ......................................................................................
Acknowledgments .........................................................................
Introduction ...................................................................................
What Are Design Patterns and Why Do You Need Them? ......
What Are Design Patterns and Where Do They Originate From
Structure of a Design Pattern ......................................................
Benefits of Design Patterns .........................................................
Creational Design Patterns ..........................................................
Abstract Factory ..........................................................................
Builder .........................................................................................
Factory Method ...........................................................................
Prototype .....................................................................................
Singleton .....................................................................................
Structural Design Patterns ...........................................................
Adapter ........................................................................................
Bridge ..........................................................................................
Composite ...................................................................................
Decorator .....................................................................................
Façade .........................................................................................
Behavioural Design Patterns .......................................................
Chain of Responsibility ...............................................................
Command ....................................................................................
Interpreter ....................................................................................
Strategy .......................................................................................
Visitor Pattern .............................................................................
How Can You Apply Design Patterns .........................................
Uses of Design Patterns ..............................................................
Creational Design Patterns ..........................................................
Factory Method ...........................................................................
Abstract Factory Method .........................................................
Builder .....................................................................................
Prototype .................................................................................
Singleton ..................................................................................
Structural Design Patterns .......................................................
Adaptor ....................................................................................
Composite ................................................................................
Decorator .................................................................................
Façade ......................................................................................
Behavioural Design Patterns .......................................................
Chain of Responsibility ...........................................................
Command ................................................................................
Interpreter ................................................................................
Strategy ....................................................................................
Visitor ......................................................................................
Overview of Modern Concurrency and Parallelism Concepts .
Concurrency vs. Parallelism .......................................................
Processes and Threads ................................................................
Green Threads .............................................................................
Protothreads ................................................................................
Fibers ...........................................................................................
Generators ...................................................................................
Coroutines ...................................................................................
Goroutines ...................................................................................
Actors ..........................................................................................
LMAX Disruptor .........................................................................
Common Software Architectural Patterns .................................
What is an Architectural Pattern? ...............................................
Layered Pattern ...........................................................................
The Most Commonly Found 4 Layers Of A General
Information System .................................................................
Usage .......................................................................................
Client-Server Pattern ...................................................................
Usage .......................................................................................
Master-Slave Pattern ...................................................................
Usage .......................................................................................
Pipe-Filter Pattern .......................................................................
Usage .......................................................................................
Broker Pattern .............................................................................
Usage .......................................................................................
Peer-to-Peer Pattern ....................................................................
Usage .......................................................................................
Event-Bus Pattern .......................................................................
Usage .......................................................................................
Model-View-Controller Pattern ..................................................
Usage .......................................................................................
Blackboard Pattern ......................................................................
Usage .......................................................................................
Interpreter Pattern .......................................................................
Usage .......................................................................................
Authentication and Authorisation ...............................................
Authentication .............................................................................
Local Authentication ...................................................................
Two Factor Authentication ......................................................
The second factor required in two-step authentication
process can be: .........................................................................
A knowledge Factor ................................................................
A possession Factor .................................................................
An inherence Factor ................................................................
A location Factor .....................................................................
Multi Factor Authentication ....................................................
Authorization ..............................................................................
Access Control ............................................................................
Discretionary Access Control ..................................................
Role-Based Access Control .....................................................
Attribute-Based Access Control ..............................................
Mandatory Access Control ......................................................
Events and Events Processing ......................................................
What are Events? ........................................................................
Event Programming ....................................................................
Complex Event Processing .........................................................
How Complex Event Processing Works .....................................
Stream Processing .........................................................................
What is Stream Processing? ........................................................
How does it work? ......................................................................
Use Cases ....................................................................................
Real-Time Fraud and Anomaly Detection ..............................
Internet of Things (IoT) Edge Analytics .................................
Real-Time Personalization, Marketing and Advertising .........
Stateless VS Stateful Stream Processing ....................................
Microservices .................................................................................
What is Microservices? ...............................................................
A brief history of microservices ..................................................
The Six Characteristics of Microservices ...................................
1. Multiple Components .......................................................
2. Built for Business .............................................................
3. Simple Routing ................................................................
4. Decentralised ....................................................................
5. Failure Resistant ...............................................................
6. Evolutionary .....................................................................
Microservices Can Increase the Efficiency of Business .............
Database .........................................................................................
What is Database? .......................................................................
What is Database Management System? ....................................
Benefits of Database Management System .................................
Data security ............................................................................
Data sharing .............................................................................
DBMS helps to create an atmosphere where end users have
better access to more efficiently-managed data. .....................
Data access and auditing .........................................................
Data integration .......................................................................
Abstraction and independence .................................................
Uniform management and administration ...............................
Types of Database Management Systems ...................................
Hierarchical Databases ............................................................
Network Databases ..................................................................
Relational Databases ...............................................................
NoSQL Databases ...................................................................
Criticism ........................................................................................
Targets the Wrong Problem ........................................................
Lacks Formal Foundations ..........................................................
Leads to Inefficient Solutions .....................................................
Disclaimer
Software Patterns Made Easy
No part of this book can be transferred or replicated in any form, which includes print, electronic, photocopying, scanning, mechan-ical, or recording without subsequent written permission from the author.
While the author has taken the utmost efforts to ensure the accu-racy of the written content, all readers are advised to follow the information stated therein at their own risk. The author will not be held responsible for any individual or economic damage caused by the misunderstanding of information. All readers of this book are encouraged to seek expert advice when required.
This book has been written for informational purposes only. Efforts have been made to make this book as comprehensive and precise as possible. Nevertheless, there may be mistakes in typogra-phy or content. Also, this book provides information only up to the publishing date. Therefore, this book should be used as a guide -
not as the ultimate source.
The primary purpose of this book is to teach readers about the topic being discussed. The writer and the publisher do not warrant that the information contained in this book is comprehensive and will not be held responsible for any errors or oversights. The writer and publisher will have neither accountability nor blame to any individual or Object in regards to any loss or damage which is caused or alleged to be caused directly or indirectly through this book.
Acknowledgments
To all the individuals I have had the opportunity to lead, be led by, or watch their leadership from afar, I want to thank you for inspiring and motivating me.
I would like to thank my lovely parents, Louisette and Jean Nanhou. My tutor and second father, Christian Seudieu and his family for their advice.
Having an idea and turning it into a book is as hard as it sounds.
The experience is both internally challenging and rewarding. I want to thank the individuals that helped make this happen, especially Walter Krasniqi, Ryan Fernandez and their amazing publishing team.
Finally, the heavenly father for inspiration and daily strength.
Introduction
If you are ever writing code and get the funny feeling that you have solved the problem you were working on before, you probably have! You might well have come across the same kind of situation in the past, felt puzzled about it, and came up with a solution to that problem. This might have happened quite a few times.
However,
