Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: The Singleton class (ConfigurationManager) only allows one instance to be created. The instance is stored in the static _instance field, ensuring that only one object exists. Real-world example (ShopNest) U…
Short answer: The ConfigurationManager class is designed to ensure that there is only one instance of it throughout the application. Explain a bit more The Instance property handles the lazy initialization of the singlet…
Short answer: A virtual proxy can be used to load large images or videos on-demand, especially when dealing with high-resolution media files that could be costly to load upfront. Real-world example (ShopNest) Use a GoF p…
Short answer: Used to delay the creation or initialization of an expensive object until it is actually needed, like the ProxyImage example above. Real-world example (ShopNest) Use a GoF pattern in ShopNest only when it r…
Short answer: The proxy allows you to delay the creation of resource-intensive objects (like loading an image) until it's actually needed, optimizing resource usage. Real-world example (ShopNest) Use a GoF pattern in Sho…
Short answer: The client interacts with the proxy (ProxyImage), which implements the same interface (IImage) as the real subject (RealImage). Real-world example (ShopNest) Use a GoF pattern in ShopNest only when it remov…
Short answer: This is the common interface that both the real object (RealImage) and the proxy object (ProxyImage) implement. It defines the method Display() that both concrete classes must implement. public interface II…
Short answer: In a role-playing game (RPG), characters or enemies can be cloned from a prototype template (e.g., an "Archer" prototype) and customized with different attributes (e.g., health, attack power) to c…
Short answer: The example above demonstrates shallow cloning, where only the primitive properties are copied. If the object contains references to other objects (e.g., arrays, lists), you may need to implement deep cloni…
Short answer: Cloning objects is often more efficient than creating new ones from scratch, especially when the object is complex or expensive to create. This can be particularly useful in performance-sensitive applicatio…
Short answer: This interface defines the Clone() method that concrete prototypes must implement. This method returns a new object that is a copy of the current object. public interface ICloneable Example code { ICloneabl…
Short answer: A news website where multiple users subscribe to receive notifications when new articles or breaking news are published. Real-world example (ShopNest) Use a GoF pattern in ShopNest only when it removes dupl…
Short answer: If there are a large number of observers or if the state changes frequently, the Observer Pattern can lead to performance overhead due to the frequent notifications sent to all observers. Real-world example…
Short answer: The NewsPublisher class acts as the subject in the Observer Pattern. It maintains a list of IObserver instances (subscribers) and provides methods to add (Subscribe), remove (Unsubscribe), and notify them (…
Short answer: This interface defines methods for subscribing, unsubscribing, and notifying observers. The subject manages a list of observers and notifies them when there is an update. public interface INewsPublisher Exa…
Short answer: In a text editor (such as Microsoft Word or Notepad), users can press Ctrl + Z to undo the most recent changes. Each time the user types, the editor saves a snapshot of the text as a Memento. Pressing Ctrl…
Short answer: If the object’s state is large or changes frequently, the Memento Pattern can result in significant memory usage, as you need to store many copies of the state (each memento). Real-world example (ShopNest)…
Short answer: The Memento Pattern preserves encapsulation because the state is stored in the Memento object, and the TextEditor is not exposed to direct manipulation of its internal state. The only way to change or acces…
Short answer: The TextEditor is the originator of the state. It holds the text that changes over time and can save and restore its state using mementos. Real-world example (ShopNest) Use a GoF pattern in ShopNest only wh…
Short answer: A classic example of the Mediator Pattern is a chat application, where the mediator is responsible for sending messages between users. It ensures that messages are routed correctly without the users needing…
Short answer: The Mediator Pattern decouples objects from each other by centralizing communication through the mediator. Users don't need to know about each other and only communicate via the mediator. This reduces depen…
Short answer: The mediator manages communication between the users. It maintains a list of all users and broadcasts messages to all other users when one user sends a message. This keeps the users from directly knowing ab…
Short answer: The IChatMediator interface defines two key operations: ■ SendMessage(string message, User user): Sends a message from a user to all other registered users. ■ RegisterUser(User user): Registers users with t…
Short answer: The Iterator Pattern can be extended to support reverse iteration or provide additional functionality like removing items during iteration. Real-world example (ShopNest) Use a GoF pattern in ShopNest only w…
Short answer: The Iterator Pattern is commonly used when working with product lists, customer lists, or any other collection where you need to iterate over items sequentially. For instance, in an e-commerce application,…
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The Singleton class (ConfigurationManager) only allows one instance to be created. The instance is stored in the static _instance field, ensuring that only one object exists.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The ConfigurationManager class is designed to ensure that there is only one instance of it throughout the application.
The Instance property handles the lazy initialization of the singleton instance, ensuring that it's only created once and then reused.
{
private static ConfigurationManager _instance;
private static readonly object _lock = new object(); // Lock
for thread safety
private ConfigurationManager() { } // Private constructor to prevent instantiation public static ConfigurationManager Instance
{ get { lock (_lock) // Ensure thread safety {
return _instance ??= new ConfigurationManager(); // Lazy initialization }
}
}
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: A virtual proxy can be used to load large images or videos on-demand, especially when dealing with high-resolution media files that could be costly to load upfront.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: Used to delay the creation or initialization of an expensive object until it is actually needed, like the ProxyImage example above.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The proxy allows you to delay the creation of resource-intensive objects (like loading an image) until it's actually needed, optimizing resource usage.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The client interacts with the proxy (ProxyImage), which implements the same interface (IImage) as the real subject (RealImage).
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: This is the common interface that both the real object (RealImage) and the proxy object (ProxyImage) implement. It defines the method Display() that both concrete classes must implement. public interface IImage
{ void Display(); }
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: In a role-playing game (RPG), characters or enemies can be cloned from a prototype template (e.g., an "Archer" prototype) and customized with different attributes (e.g., health, attack power) to create new characters or enemies.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The example above demonstrates shallow cloning, where only the primitive properties are copied. If the object contains references to other objects (e.g., arrays, lists), you may need to implement deep cloning to ensure that referenced objects are also cloned, not just referenced.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: Cloning objects is often more efficient than creating new ones from scratch, especially when the object is complex or expensive to create. This can be particularly useful in performance-sensitive applications like games or simulations.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: This interface defines the Clone() method that concrete prototypes must implement. This method returns a new object that is a copy of the current object. public interface ICloneable
{ ICloneable Clone(); }
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: A news website where multiple users subscribe to receive notifications when new articles or breaking news are published.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: If there are a large number of observers or if the state changes frequently, the Observer Pattern can lead to performance overhead due to the frequent notifications sent to all observers.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The NewsPublisher class acts as the subject in the Observer Pattern. It maintains a list of IObserver instances (subscribers) and provides methods to add (Subscribe), remove (Unsubscribe), and notify them (Notify).
When order status changes, observers update email, SMS, and analytics without the Order class knowing each one.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: This interface defines methods for subscribing, unsubscribing, and notifying observers. The subject manages a list of observers and notifies them when there is an update. public interface INewsPublisher
{ void Subscribe(IObserver observer); void Unsubscribe(IObserver observer); void Notify(string news); }
When order status changes, observers update email, SMS, and analytics without the Order class knowing each one.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: In a text editor (such as Microsoft Word or Notepad), users can press Ctrl + Z to undo the most recent changes. Each time the user types, the editor saves a snapshot of the text as a Memento. Pressing Ctrl + Z restores the text to its previous state.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: If the object’s state is large or changes frequently, the Memento Pattern can result in significant memory usage, as you need to store many copies of the state (each memento).
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The Memento Pattern preserves encapsulation because the state is stored in the Memento object, and the TextEditor is not exposed to direct manipulation of its internal state. The only way to change or access the state is through well-defined methods (Save and Restore).
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The TextEditor is the originator of the state. It holds the text that changes over time and can save and restore its state using mementos.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: A classic example of the Mediator Pattern is a chat application, where the mediator is responsible for sending messages between users. It ensures that messages are routed correctly without the users needing to know about each other.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The Mediator Pattern decouples objects from each other by centralizing communication through the mediator. Users don't need to know about each other and only communicate via the mediator. This reduces dependencies and makes the system easier to maintain.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The mediator manages communication between the users. It maintains a list of all users and broadcasts messages to all other users when one user sends a message. This keeps the users from directly knowing about each other, thus promoting loose coupling.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The IChatMediator interface defines two key operations: ■ SendMessage(string message, User user): Sends a message from a user to all other registered users. ■ RegisterUser(User user): Registers users with the mediator so they can send and receive messages. public interface IChatMediator
{ void SendMessage(string message, User user); void RegisterUser(User user); }
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The Iterator Pattern can be extended to support reverse iteration or provide additional functionality like removing items during iteration.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Gang of Four Patterns Design Patterns in C# · GoF Patterns
Short answer: The Iterator Pattern is commonly used when working with product lists, customer lists, or any other collection where you need to iterate over items sequentially. For instance, in an e-commerce application, you might use an iterator to list products, iterate through available categories, or paginate results.
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Install Toolliyo like an app Free
Home-screen access to tutorials, coding practice & career tools — no app store needed.
On iPhone/iPad: tap Share then Add to Home Screen.