The Singleton pattern ensures a class has only one instance and provides a global point to access it. It is useful when exactly one object is needed to coordinate actions across a system.
Click to reveal answer
beginner
How does the Factory pattern help in object creation?
The Factory pattern creates objects without exposing the creation logic to the client. It lets the client use a common interface to create different types of objects, making the code flexible and easier to maintain.
Click to reveal answer
beginner
What problem does the Builder pattern solve?
The Builder pattern separates the construction of a complex object from its representation. It allows creating different representations step-by-step, making it easier to build objects with many parts or options.
Click to reveal answer
intermediate
Why use the Singleton pattern instead of a global variable?
Singleton controls the instance creation and can add behavior like lazy initialization or thread safety. Unlike global variables, it encapsulates the instance and can be extended or modified without affecting global state directly.
Click to reveal answer
beginner
Give a real-life example of the Factory pattern.
Imagine a car factory that produces different car models. The factory decides which car to build based on customer choice, hiding the details of how each car is made. The customer just requests a car type and gets the right model.
Click to reveal answer
Which creational pattern ensures only one instance of a class exists?
AFactory
BBuilder
CSingleton
DObserver
✗ Incorrect
The Singleton pattern restricts a class to a single instance.
What is the main benefit of the Factory pattern?
ACreates objects without exposing creation logic
BEnsures only one instance exists
CBuilds complex objects step-by-step
DManages object lifecycle automatically
✗ Incorrect
Factory hides the creation logic and provides a common interface.
Which pattern is best for creating complex objects with many parts?
AFactory
BBuilder
CSingleton
DDecorator
✗ Incorrect
Builder separates construction from representation for complex objects.
What does the Singleton pattern provide besides a single instance?
AGlobal access point
BMultiple object types
CStep-by-step construction
DAutomatic memory management
✗ Incorrect
Singleton provides a global point to access the single instance.
In the Factory pattern, who decides which object to create?
AClient directly
BBuilder director
CSingleton instance
DFactory class
✗ Incorrect
The Factory class decides which object to create based on input.
Explain the differences between Singleton, Factory, and Builder patterns with simple examples.
Think about how each pattern controls object creation differently.
You got /4 concepts.
Describe a situation where using the Builder pattern is better than the Factory pattern.
Consider complexity and flexibility in object creation.
You got /4 concepts.
Practice
(1/5)
1. Which creational pattern ensures that only one instance of a class is created throughout the application?
easy
A. Singleton
B. Factory
C. Builder
D. Prototype
Solution
Step 1: Understand the Singleton pattern purpose
The Singleton pattern restricts the instantiation of a class to one object only.
Step 2: Compare with other patterns
Factory creates objects but does not limit the number; Builder constructs complex objects step-by-step; Prototype clones objects.
Final Answer:
Singleton -> Option A
Quick Check:
Only one instance = Singleton [OK]
Hint: Singleton = single instance only [OK]
Common Mistakes:
Confusing Factory with Singleton
Thinking Builder limits instances
Mixing Prototype with Singleton
2. Which of the following is the correct way to define a Singleton class in most object-oriented languages?
easy
A. Allow multiple instances but share data between them
B. Build the object step-by-step using a builder
C. Make the constructor private and provide a static method to get the instance
D. Use a factory method to create new instances every time
Solution
Step 1: Recall Singleton implementation details
Singleton classes hide their constructor (make it private) to prevent direct instantiation.
Step 2: Provide controlled access
A static method returns the single instance, creating it if it doesn't exist yet.
Final Answer:
Make the constructor private and provide a static method to get the instance -> Option C
3. Consider the following code snippet using a Factory pattern:
class AnimalFactory {
createAnimal(type) {
switch(type) {
case 'dog': return new Dog();
case 'cat': return new Cat();
default: return null;
}
}
}
const factory = new AnimalFactory();
const pet = factory.createAnimal('dog');
console.log(pet.sound());
What will be the output if Dog.sound() returns "Woof" and Cat.sound() returns "Meow"?
medium
A. Error: createAnimal is not a function
B. "Meow"
C. null
D. "Woof"
Solution
Step 1: Understand the Factory method call
The factory creates an object based on the string 'dog', so it returns a new Dog instance.
Step 2: Call the sound method on the Dog instance
Since Dog.sound() returns "Woof", the console.log outputs "Woof".
Final Answer:
"Woof" -> Option D
Quick Check:
Factory creates Dog, Dog.sound() = "Woof" [OK]
Hint: Factory returns object by type, call its method [OK]
Common Mistakes:
Assuming factory returns null for known types
Confusing Dog and Cat outputs
Thinking createAnimal is undefined
4. A developer tries to implement a Singleton but writes this code:
class Logger {
constructor() {
if (!Logger.instance) {
Logger.instance = this;
}
return Logger.instance;
}
}
const log1 = new Logger();
const log2 = new Logger();
console.log(log1 === log2);
What is the output and what is the issue with this Singleton implementation?
medium
A. false; constructor allows multiple instances
B. true; but constructor is public which is not ideal
C. true; works perfectly as Singleton
D. Error; cannot assign to Logger.instance
Solution
Step 1: Analyze the constructor logic
The constructor checks if Logger.instance exists; if not, assigns this to it, then returns Logger.instance.
Step 2: Check the instance equality
Both log1 and log2 refer to the same Logger.instance, so log1 === log2 is true.
Step 3: Identify the issue
The constructor is still public, so new Logger() can be called multiple times, which is not ideal for Singleton pattern.
Final Answer:
true; but constructor is public which is not ideal -> Option B
Quick Check:
Same instance but public constructor = A [OK]
Hint: Singleton needs private constructor to prevent multiple calls [OK]
Common Mistakes:
Assuming public constructor is fine for Singleton
Thinking output is false due to new calls
Expecting runtime error on instance assignment
5. You need to create a complex computer object with many optional parts (CPU, RAM, GPU, Storage). Which creational pattern is best suited to build this object step-by-step without confusing the client code?
hard
A. Builder
B. Factory
C. Singleton
D. Prototype
Solution
Step 1: Understand the problem requirements
The object is complex with many optional parts, so building it step-by-step is needed.
Step 2: Match with creational patterns
Builder pattern is designed to construct complex objects step-by-step, allowing optional parts without confusing client code.
Step 3: Exclude other patterns
Singleton limits instances, Factory creates objects but not stepwise, Prototype clones existing objects.