A staple in Magento 2 technical interview questions, be prepared to answer this one.   There are a lot of design patterns available in Magento 2. It increases the readability of the code, which in turn helps in development. These patterns are reusable and help in solving commonly occurring problems. Model View Controller Pattern (MVC): It utilizes a DOM based configuration layer. XML is used to drive the configuration and actions of the application in addition to MVC architecture.  Front Controller: It helps in implementing workflow Magento applications. It has a single point of entry for all requests.  Factory View: Instantiation of classes is done using this view in Magento. In Magento, a class is created by using the relevant method and giving the class name, followed by an abstract name that represents a class group. Class groups and the proper abstractions for each group are declared in our configuration XML files located in the /etc/ subdirectory of our module.  Singleton Pattern: The Singleton pattern is instantiated for Blocks and Classes in a manner similar to Magento's factory class abstraction and class groups. It is useful to limit the finite number of connections in a database.  Registry Pattern: Any object or piece of data can be made available in a global public scope for any resource using the registry pattern. The internal registry, a global scoped data storage container, houses all singleton patterns.  Prototype Pattern: The Abstract Factory pattern is expanded upon using the prototype pattern. It makes sure that the right types are allocated to an object and that the right subclass is instantiated.  Object Pool Pattern: The object pool pattern is essentially a box holding objects so they don't need to be allocated and deleted repeatedly. Instead of repeatedly instantiating and discarding the same things, it maintains them available for usage at all times. It is an excellent approach to reducing memory usage.  Iterator Pattern: The iterator pattern is a design pattern that enables the specification of an iterator and permits the passing of numerous different sets of data without altering the underlying structure that permits iteration. This is handled by the Varien Data Collection in Magento.  Lazy Loading Pattern: A design strategy known as lazy loading holds off on loading an object until the object is needed. They do not use Magento with objects.  Service Locator Pattern: By wrapping the procedure inside an abstraction layer, the service locator pattern is a design pattern that enables a user to obtain a service. This enables the user to retrieve the best or most suited services without being aware of what those services are beforehand.  Module Pattern: The module pattern fundamentally states that various domains are divided into independent modules that can be inserted into the main system as necessary and work independently of one another.  Observer Pattern: The observer pattern is activated at a specific time while an application is running.