What is Chain of Responsibility pattern?

  • A design pattern that allows objects to represent or act on behalf of other objects, providing a level of indirection between the client and the target object
  • A design pattern that creates objects by cloning existing objects, rather than creating new instances from scratch
  • A design pattern that passes a request through a chain of objects, allowing the objects in the chain to either handle the request or pass it on to the next object in the chain
  • A design pattern that provides a simplified interface to a complex system, allowing the client to interact with the system through a single, unified interface
Chain of Responsibility pattern is a design pattern that passes a request through a chain of objects, allowing the objects in the chain to either handle the request or pass it on to the next object in the chain. The pattern involves creating a chain of objects, where each object has a reference to the next object in the chain. This pattern can be useful in situations where you want to decouple the sender of a request from its receiver, allowing multiple objects to handle the request in a modular manner.

What is Mediator pattern?

  • A design pattern that allows the client to traverse a collection of objects, without exposing the underlying representation of the collection
  • 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 provides a simplified interface to a complex system, allowing the client to interact with the system through a single, unified interface
  • A design pattern that uses a central authority to manage communication between components, reducing the coupling between components and allowing for more flexible and modular system design
Mediator pattern is a design pattern that uses a central authority to manage communication between components, reducing the coupling between components and allowing for more flexible and modular system design. In the Mediator pattern, the Mediator class acts as a centralized authority that manages communication between different components, and ensures that the components are decoupled from one another. This pattern can be useful in situations where you want to reduce the coupling between components, and promote a more flexible and modular system design.

What is the Observer design pattern used for?

  • To define a one-to-many dependency between objects so that changes to one object result in changes to many other objects.
  • To encapsulate operations in an object and pass them as messages.
  • To ensure that a class has only one instance and provide a global point of access to that instance.
  • To provide a way to dynamically instantiate objects of a specified class.
The Observer design pattern is used to define a one-to-many dependency between objects so that changes to one object result in changes to many other objects. This can be useful in situations where it is important to keep multiple objects in sync with each other.

How should I be grouping my Repositories when using Repository Pattern?

  • Repositories should be grouped based on the database tables they access, for example grouping all repositories that access a specific table in a single class or namespace.
  • Repositories should be grouped based on the domain entities they provide access to, for example grouping all repositories for a specific type of entity in a single class or namespace.
  • Repositories should be grouped based on the type of operations they support, for example grouping all repositories that support read operations in a single class or namespace.
  • Repositories should be grouped based on their implementation, for example grouping all repositories that use a specific data access technology in a single class or namespace.
Repositories should be grouped based on the domain entities they provide access to, as this provides a clear and organized way of grouping related repositories.

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.