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

Tip: Be thorough! Consider security, performance, code quality, and best practices.
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
Analyzing Your Review
Our AI is carefully evaluating your code review against best practices