Skip to content

Instantly share code, notes, and snippets.

@naijab
Last active April 8, 2020 09:35
Show Gist options
  • Save naijab/554a53f4e258ee44179f13ef16990abe to your computer and use it in GitHub Desktop.
Save naijab/554a53f4e258ee44179f13ef16990abe to your computer and use it in GitHub Desktop.
Service Design Pattern
package com.moommimit.moommim.controller;
import com.moommimit.moommim.service.NewsService;
import com.moommimit.moommim.utils.ResultCallback;
import java.io.IOException;
import java.util.logging.Logger;
import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "HomeServlet", urlPatterns = {"/cat/*"})
public class HomeServlet extends HttpServlet {
private static final Logger LOGGER = Logger.getLogger(HomeServlet.class.getSimpleName());
@Inject
private NewsService newsService;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Home Serv");
String name = request.getParameter("name");
newsService.getNews(name, new ResultCallback<String[]>() {
@Override
public void onSuccess(String[] news) {
for (String item : news) {
System.out.println("News: " + item);
}
}
@Override
public void onError(Exception ex) {
System.out.println("Is have Error");
}
});
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
package com.moommimit.moommim.service;
import com.moommimit.moommim.utils.ResultCallback;
public interface NewsService {
void getNews(String name, ResultCallback newsCallback);
}
package com.moommimit.moommim.service;
import com.moommimit.moommim.utils.ResultCallback;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class NewsServiceImpl implements NewsService {
@Override
public void getNews(String name, ResultCallback newsCallback) {
boolean isHaveNews = true;
System.out.println("Hello " + name);
if (isHaveNews) {
String[] news = {"Tech", "Drama", "Movie"};
newsCallback.onSuccess(news);
} else {
newsCallback.onError(null);
}
}
}
package com.moommimit.moommim.utils;
public interface ResultCallback<T> {
void onSuccess(T result);
void onError(Exception ex);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment