What is the use of Software Design Patterns ? And why should one consider using them during their application development ?
Software design pattern provides you a general reusable solution for the common problems which occurs in software design. The idea behind using software design pattern is to speed up development process by providing a solution which is well tested, proven development/designs, they are also widely accepted to solve software design problems OR to avoid any future software design problems which may arise late at the end of software development life cycle.
Types of Design Patterns in Software Engineering:
1. Creational Patterns
i. Abstract Factory
Lets you produce similar related objects without specifying their concrete classes.
ii. Factory Method
iii. Singleton
This pattern ensures that a class has only one instance, and the same instance is referred when required.
2. Structural Patterns
i. Decorator
ii. Adapter
3. Behavioural Patterns
i. Iterator
ii. Observer
iii. Visitor