Add greeting message
Problem Context
We want to display a simple 'Hello, [name]!' greeting message when users log in.
Beginner
50 points
File Changes (4)
src/main/java/com/example/greeting/GreetingStrategy.java
ADDED
@@ -0 +1 @@
| 1 | +package com.example.greeting; |
|
| 2 | + |
|
| 3 | +public interface GreetingStrategy { |
|
| 4 | + String generateGreeting(User user); |
|
| 5 | +} |
src/main/java/com/example/greeting/AbstractGreetingTemplate.java
ADDED
@@ -0 +1 @@
| 1 | +package com.example.greeting; |
|
| 2 | + |
|
| 3 | +public abstract class AbstractGreetingTemplate implements GreetingStrategy { |
|
| 4 | + protected abstract String getPrefix(); |
|
| 5 | + protected abstract String getSuffix(); |
|
| 6 | + |
|
| 7 | + @Override |
|
| 8 | + public String generateGreeting(User user) { |
|
| 9 | + return getPrefix() + user.getName() + getSuffix(); |
|
| 10 | + } |
|
| 11 | +} |
src/main/java/com/example/greeting/DefaultGreetingStrategy.java
ADDED
@@ -0 +1 @@
| 1 | +package com.example.greeting; |
|
| 2 | + |
|
| 3 | +@Component |
|
| 4 | +public class DefaultGreetingStrategy extends AbstractGreetingTemplate { |
|
| 5 | + @Override |
|
| 6 | + protected String getPrefix() { return "Hello, "; } |
|
| 7 | + |
|
| 8 | + @Override |
|
| 9 | + protected String getSuffix() { return "!"; } |
|
| 10 | +} |
src/main/java/com/example/greeting/GreetingFactory.java
ADDED
@@ -0 +1 @@
| 1 | +package com.example.greeting; |
|
| 2 | + |
|
| 3 | +@Component |
|
| 4 | +public class GreetingFactory { |
|
| 5 | + private final Map<String, GreetingStrategy> strategies; |
|
| 6 | + |
|
| 7 | + public GreetingFactory(List<GreetingStrategy> strategyList) { |
|
| 8 | + strategies = strategyList.stream() |
|
| 9 | + .collect(Collectors.toMap( |
|
| 10 | + s -> s.getClass().getSimpleName(), |
|
| 11 | + Function.identity())); |
|
| 12 | + } |
|
| 13 | + |
|
| 14 | + public GreetingStrategy getStrategy(String type) { |
|
| 15 | + return strategies.getOrDefault(type, strategies.get("DefaultGreetingStrategy")); |
|
| 16 | + } |
|
| 17 | +} |
Login Required: You must be registered to submit reviews and receive AI feedback.
Register or
login to start reviewing!
Your Review
Review Tips
- Look for security vulnerabilities (SQL injection, XSS, etc.)
- Check for null pointer exceptions and error handling
- Consider performance implications
- Evaluate code maintainability and readability
- Check for proper resource management
- Look for logic errors or edge cases