What is the purpose of the Memento pattern?
- To create complex objects step by step, using a builder object to abstract the process of creating the object
- To provide a common interface for a group of related classes
- To provide a mechanism for saving and restoring an object's internal state without violating encapsulation
- To provide a simplified interface to a complex system, hiding the complexity of the system behind a single interface
The Memento pattern provides a mechanism for saving and restoring an object's internal state without violating encapsulation
Explain difference between the Facade, Proxy, Adapter and Decorator design patterns?
- The Facade design pattern provides a simplified interface to a complex system, while the Proxy design pattern provides a placeholder for another object to control access to it. The Adapter design pattern converts the interface of a class into another interface that the client expects, and the Decorator design pattern adds behavior to an individual object, dynamically, without affecting the behavior of other objects from the same class.
- The Facade design pattern provides a unified interface to a set of interfaces in a system, while the Proxy design pattern provides a way to access an object indirectly. The Adapter design pattern adapts an object to a new interface, and the Decorator design pattern adds behavior to an individual object, dynamically, but affects the behavior of other objects from the same class.
- The Facade design pattern provides a way to access a system's functionality, while the Proxy design pattern provides a way to extend an object's functionality. The Adapter design pattern converts the interface of one class into that of another, and the Decorator design pattern adds behavior to an individual object, statically, and affects the behavior of other objects from the same class.
- The Facade design pattern provides an intermediary between two systems, while the Proxy design pattern provides a default implementation of an interface. The Adapter design pattern is used to allow two systems to work together, and the Decorator design pattern adds behavior to an object, statically, without affecting the behavior of other objects from the same class.
The Facade design pattern provides a simplified interface to a complex system, while the Proxy design pattern provides a placeholder for another object to control access to it. The Adapter design pattern converts the interface of a class into another interface that the client expects, and the Decorator design pattern adds behavior to an individual object, dynamically, without affecting the behavior of other objects from the same class.
What is a pattern?
- A recurring solution to a common problem in a specific context. Patterns can be used in many different fields, including software development, architecture, and design.
- A sequence of actions or behaviors that are repeated in a particular situation.
- A set of coding conventions that must be followed when developing software to ensure consistency and readability.
- A specific arrangement or design that is repeated in a work of art or architecture.
A pattern is a general, reusable solution to a commonly occurring problem in a specific context. In software development, patterns are often used to solve design problems and improve the quality and maintainability of code.
What is the purpose of the Business Delegate pattern?
- To create objects with complex behavior.
- To define a default behavior for an object.
- To encapsulate business logic and provide a clean API for clients.
- To manage the lifecycle of objects.
The Business Delegate pattern aims to encapsulate complex business logic and provide a clean API for clients to access it, reducing coupling between the client and business logic.
Name the actor classes used in Observer pattern.
- ConcreteObserver, Subject, Observer
- Observer, ConcreteObserver, Subject
- Subject, Observer, ConcreteObserver
- Subject, Observer, ConcreteSubject
The actor classes used in the Observer pattern are: Subject, Observer, and ConcreteObserver. The Subject class is responsible for maintaining a list of its dependents and notifying them of changes to its state. The Observer class is an abstract class that defines the interface for updating dependents. The ConcreteObserver class is a concrete implementation of the Observer class, responsible for updating its state in response to changes to the subject's state.
What is the difference between the Strategy and Template patterns?
- The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. The Template pattern defines the skeleton of an algorithm in a method, deferring some steps to subclasses.
- The Strategy pattern defines the skeleton of an algorithm in a method, deferring some steps to subclasses, while the Template pattern defines a family of algorithms and makes them interchangeable.
- The Template pattern is used to allow for loose coupling between the sender of a request and its receivers, while the Strategy pattern provides a unified interface to a set of interfaces in a subsystem.
- The Template pattern is used to convert the interface of a class into another interface clients expect, while the Strategy pattern allows sending requests to objects without knowing anything about the operation being requested or the receiver of the request.
The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable, while the Template pattern defines the skeleton of an algorithm in a method, deferring some steps to subclasses.
Explain what is Composition over Inheritance?
- Composition over Inheritance is a design principle that eliminates the use of composition for code reuse.
- Composition over Inheritance is a design principle that eliminates the use of inheritance for code reuse.
- Composition over Inheritance is a design principle that favors class inheritance over object composition for code reuse.
- Composition over Inheritance is a design principle that favors object composition over class inheritance for code reuse.
Composition over Inheritance is a design principle that favors object composition over class inheritance for code reuse. It allows for greater flexibility and maintainability in code design.
What is the difference between the Factory and Abstract Factory patterns?
- None of the above
- The Factory and Abstract Factory patterns are the same
- The Factory pattern creates objects of a single class, while the Abstract Factory pattern creates objects of several classes
- The Factory pattern creates objects of several classes, while the Abstract Factory pattern creates objects of a single class
The Factory pattern creates objects of a single class, while the Abstract Factory pattern creates objects of several classes
What is Data Access Object (DAO) pattern?
- A design pattern to handle communication between objects
- A design pattern to handle the database connections
- A design pattern to manage complex state transitions
- A design pattern to provide a unified interface to a set of interfaces
The DAO pattern provides a unified interface to a set of data sources. It separates the data persistence mechanism from the business logic, allowing the data to be accessed and modified easily and efficiently.
What is the difference between the Singleton and Prototype patterns?
- The Singleton pattern allows multiple instances to be created from a single prototype object, while the Prototype pattern ensures that a class has only one instance and provides a global point of access to that instance.
- The Singleton pattern ensures that a class has multiple instances, while the Prototype pattern allows only one instance to be created from a single prototype object.
- The Singleton pattern ensures that a class has only one instance and provides a global point of access to that instance, while the Prototype pattern allows multiple instances to be created from a single prototype object.
- The Singleton pattern ensures that a class has only one instance, while the Prototype pattern ensures that a class has multiple instances with unique characteristics.
The Singleton pattern ensures that a class has only one instance and provides a global point of access to that instance, while the Prototype pattern allows multiple instances to be created from a single prototype object.