/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	interface Task {
		void doSomething();
	}

	interface Factory {
		Task makeTask(String taskDescription);
	}

	static Map<String, Factory> taskMap = new HashMap<>();

	static {
		taskMap.put("sayHello", new Factory() {
			@Override
			public Task makeTask(String taskPayload) {
				return new Task() {
					@Override
					public void doSomething() {
						System.out.println("Hello " + taskPayload);
					}
				};
			}
		});
	}

	static void onTask(String taskName, String taskPayload) {
		Factory factory = taskMap.get(taskName);
		if (factory == null) {
			System.out.println("Unknown task: " + taskName);
			return;
		}
		Task task = factory.makeTask(taskPayload);

		// execute task somewhere
		task.doSomething();
	}

	public static void main(String[] args) {
		onTask("sayHello", "qingl97");
		onTask("sayGoodbye", "qingl97");
	}
}