What is Decorator pattern?

  • A design pattern that allows objects to be decorated with additional responsibilities, dynamically, at runtime
  • A design pattern that creates objects by cloning existing objects, rather than creating new instances from scratch
  • A design pattern that filters a set of objects based on certain criteria and returns a subset of those objects
  • A design pattern that separates an object's implementation from its interface, allowing the two to vary independently
Decorator pattern is a design pattern that allows objects to be decorated with additional responsibilities, dynamically, at runtime. The pattern involves creating a decorator class that wraps the original object, adding the new responsibilities to the original object's behavior. This pattern can be useful in situations where you want to add or remove responsibilities from objects dynamically, without affecting the behavior of the original objects.

Explain usage of Service Locator Pattern

  • The Service Locator pattern is used to access a centralized registry of service objects, so that client objects can access the services directly.
  • The Service Locator pattern is used to access a centralized registry of service objects, so that client objects do not have to depend on the concrete implementations of the services.
  • The Service Locator pattern is used to create a centralized registry of service objects, so that client objects can access the services indirectly.
  • The Service Locator pattern is used to maintain a centralized registry of service objects, so that client objects can access the services through a locator object.
The Service Locator pattern is used to maintain a centralized registry of service objects, and provides a single point of access for clients to access the services through a locator object.

What is the difference between the Transfer Object and Data Access Object patterns?

  • Transfer Object is a client-side pattern, while Data Access Object is a server-side pattern.
  • Transfer Object is a simple object used to pass data between layers, while Data Access Object is used to perform CRUD operations on a database.
  • Transfer Object is used to manage the lifecycle of objects, while Data Access Object is used to encapsulate complex business logic.
  • Transfer Object is used to perform CRUD operations on a database, while Data Access Object is a simple object used to pass data between layers.
The Transfer Object pattern involves a simple object used to pass data between layers, while the Data Access Object pattern involves an object used to perform CRUD operations on a database.

What are some reasons to use Repository Pattern?

  • To abstract data access and encapsulate underlying data storage
  • To allow for code reuse
  • To increase security by limiting direct access to the data storage
  • To manage the complexity of a software system
Repository Pattern is used to abstract data access and encapsulate the underlying data storage, making it easier to change data storage solutions without affecting the rest of the application. It also helps to manage the complexity of a software system by providing a clear separation of concerns between the data access logic and the business logic.

What is the difference between the Front Controller and Intercepting Filter patterns?

  • Front Controller pattern acts as a single entry point for all incoming requests, while the Intercepting Filter pattern is used to filter requests before they are processed by the target resource.
  • Front Controller pattern handles incoming requests and dispatches them to the appropriate handlers, while the Intercepting Filter pattern is used to filter incoming requests and modify them before they reach the target.
  • Front Controller pattern is used for request processing in a centralized manner, while the Intercepting Filter pattern is used for request processing in a more modular and flexible manner.
  • Front Controller pattern provides a centralized request handling mechanism that dispatches requests to individual handlers based on the request URL. Intercepting Filter pattern provides a way to intercept requests, manipulate request data and modify responses before they are sent to the target resource.
The Front Controller pattern provides a centralized request handling mechanism, while the Intercepting Filter pattern provides a way to intercept and modify incoming requests before they are processed by the target resource.

What is Interpreter pattern?

  • A design pattern that converts a request into a standalone object, allowing the client to parametrize objects with different requests, queue a request, or log requests
  • A design pattern that creates objects by cloning existing objects, rather than creating new instances from scratch
  • A design pattern that implements a specialized language, allowing the client to express complex operations in a simplified manner
  • A design pattern that uses shared objects to support large numbers of similar objects efficiently
Interpreter pattern is a design pattern that implements a specialized language, allowing the client to express complex operations in a simplified manner. The pattern involves creating an interpreter class that evaluates expressions in the language, and performs the operations specified by the expressions. This pattern can be useful in situations where you want to allow the client to specify complex operations in a concise and easily understandable manner.

What are J2EE Patterns?

  • A set of design patterns for software development using the C++ programming language
  • A set of design patterns for software development using the Java programming language
  • A set of design patterns for software development using the Python programming language
  • A set of design patterns for software development using the Ruby programming language
J2EE Patterns are a set of design patterns for software development using the Java programming language. These patterns provide solutions to common problems that arise in J2EE-based software development, such as implementing security, managing transactions, and integrating with other systems.

What is Service Locator pattern?

  • A behavioral pattern that describes how to distribute the communication between objects.
  • A creational pattern that provides a way to create objects without specifying the exact class of object that will be created.
  • A structural pattern that provides a centralized object registry and access to services by using a registry.
  • An architectural pattern that separates an application into objects, implementing a user interface and interface communication.
The Service Locator pattern is a J2EE design pattern that abstracts the way to look up and access objects. The objects are managed in a registry, which can be queried for services by client objects.

What is the purpose of the Memento pattern?

  • The Memento pattern is used to provide access control to an object's internal state.
  • The Memento pattern is used to store the state of an object in a database so that it can be restored later.
  • The Memento pattern is used to store the state of an object so that it can be restored later.
  • The Memento pattern is used to store the state of multiple objects so that they can be restored later.
The Memento pattern is used to store the state of an object so that it can be restored later.

What are the main categories of Design Patterns?

  • Behavioral, Management, and Maintenance
  • Creational, Structural, and Behavioral
  • Presentational, Container, and Behavioral
  • Structural, Logical, and Physical
Design Patterns are usually categorized into three types: Creational, Structural, and Behavioral. Creational patterns deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. Structural patterns deal with object composition, creating relationships between objects to form larger structures. Behavioral patterns focus on communication between objects, what goes on between objects and how they operate together.