How is Bridge pattern different from Adapter pattern?

  • The Bridge pattern aims to change the interface of an object while the Adapter pattern aims to reuse an existing object.
  • The Bridge pattern allows for multiple inheritance while the Adapter pattern only allows for single inheritance.
  • The Bridge pattern decouples an abstraction from its implementation while the Adapter pattern modifies the interface of an existing class to a client class.
  • The Bridge pattern is a structural pattern while the Adapter pattern is a behavioral pattern.
The Bridge pattern decouples an abstraction from its implementation while the Adapter pattern modifies the interface of an existing class to a client class.

Can you give any good explanation what is the difference between Proxy and Decorator?

  • The main difference between the Proxy and Decorator patterns is that the Proxy pattern provides a copy of another object to control access to it, while the Decorator pattern allows encapsulating an object dynamically. Proxies are often used to control access to an object or to encapsulate it, while Decorators are used to encapsulate an object.
  • The main difference between the Proxy and Decorator patterns is that the Proxy pattern provides a placeholder for another object to control access to it, while the Decorator pattern allows adding or extending behavior dynamically to an object. Proxies are often used to control access to an object or to add functionality such as caching, while Decorators are used to add or extend the behavior of an object.
  • The main difference between the Proxy and Decorator patterns is that the Proxy pattern provides a replacement for another object to control access to it, while the Decorator pattern allows changing the behavior of an object dynamically. Proxies are often used to add functionality such as caching or security, while Decorators are used to modify the behavior of an object.
  • The main difference between the Proxy and Decorator patterns is that the Proxy pattern provides a substitute for another object to control access to it, while the Decorator pattern allows modifying the appearance of an object dynamically. Proxies are often used to control access to an object or to change its appearance, while Decorators are used to modify the appearance of an object.
The main difference between the Proxy and Decorator patterns is that the Proxy pattern provides a placeholder for another object to control access to it, while the Decorator pattern allows adding or extending behavior dynamically to an object. Proxies are often used to control access to an object or to add functionality such as caching, while Decorators are used to add or extend the behavior of an object.

What is Gang of Four (GOF)?

  • A group of four software design experts, namely Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, who wrote a book titled "Design Patterns: Elements of Reusable Object-Oriented Software".
  • A group of software design experts who provide consulting services on software design.
  • A group of software developers who work together on software development projects.
  • A software development company that specializes in creating design patterns.
The Gang of Four (GOF) is a group of four software design experts who wrote a seminal book on design patterns. The book, which was published in 1995, popularized the concept of design patterns and provided a common vocabulary and a standard way of thinking about software design problems. The GOF book is considered an essential reference for software developers and is widely used in the software development community.

What is the Chain of Responsibility pattern?

  • The Chain of Responsibility pattern is a design pattern that allows multiple objects to handle a request one by one, until one of them handles it successfully.
  • The Chain of Responsibility pattern is a design pattern that allows objects to be chained together, so that when a request is made, it can be passed from one object to the next, until it is handled.
  • The Chain of Responsibility pattern is a design pattern that allows objects to be linked together, so that a request can be passed from one object to another, until it is handled.
  • The Chain of Responsibility pattern is a design pattern that uses a set of objects to handle a request, without specifying the receiver.
The Chain of Responsibility pattern is a behavioral design pattern that involves passing a request sequentially through a dynamic list of objects until one of them handles it. The objects become a chain of receivers, and the request is sent from one object to another, until it is handled. This allows for a greater level of decoupling between the objects, making it easier to modify or extend the system.

What is Builder pattern?

  • A design pattern that allows the creation of objects without specifying the exact class of object that will be created
  • A design pattern that helps to create objects in a step-by-step manner, allowing for more control over the object creation process
  • A design pattern that helps to reduce the number of objects in the system, making it more efficient
  • A design pattern that promotes the loose coupling between objects, making the system easier to maintain and extend
Builder pattern is a design pattern that helps to create objects in a step-by-step manner, allowing for more control over the object creation process. This pattern separates the construction of a complex object from its representation, allowing for the same construction process to create different representations.

What is the MVC pattern?

  • A behavioral design pattern that lets you pass requests along a dynamic chain of receivers until one of them handles it.
  • A creational design pattern that uses factory methods to deal with the problem of creating objects without specifying the exact class of object that will be created.
  • A software architecture pattern that separates the representation of information from the user's interaction with it. The pattern defines three main components: the Model, the View, and the Controller.
  • A structural design pattern that allows you to compose objects into tree structures to represent part-whole hierarchies.
A software architecture pattern that separates the representation of information from the user's interaction with it. The pattern defines three main components: the Model, the View, and the Controller.

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 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.