JEE рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг





рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдЪрд╛рдирдХ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ

рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реВрдк рд╕реЗ рд▓рдЧрд╛рдП рдЧрдП рдЬреЗрдИрдИ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред



рдЖрдк, рдкреНрд░рд┐рдп рдЬрд╛рд╡рд╛ рдбреЗрдпрд░рдбреЗрд╡рд┐рд▓, рдЖрдкрдХреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рддрдВрддреНрд░ рдореЗрдВ рдПрдХ рдХреЛрдЧ рдирд╣реАрдВ рдмрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд┐рдЦрдиреЗ рдореЗрдВ "рдЯрд╛рдЗрдкрд┐рд╕реНрдЯ" рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЖрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ , рди рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд▓реЗрдЦрдХ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ

рд▓рд╛рдЦ рдкреБрд╕реНрддрдХрд╛рд▓рдп?



рдлрд┐рд░ kat рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдЬрд╣рд╛рдБ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд╢реНрд╡ рдХреЗ рдЙрдкрдпреЛрдЧреА рдЦреЛрдЬ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░реВрдБрдЧрд╛ред







рдпрд╣ рд╕рдм рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ




рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЗрдИрдИ рдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ (рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╡рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ

рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЕрд╡рд╕рд░ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдЫреЛрдЯреЗ рдШрдЯрдХ рдФрд░ рд╕реЗрд╡рд╛рдПрдВ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдВрдЧреАред

рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдпрд╣ рд╕рд░рд▓ рд╣реИред

рдПрдХ рд╕рдВрджрд░реНрдн рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

public class Context { public final DAO dao; public final MailService mails; public final AsyncService async; public App root; public Context( DAO dao, MailService mails, AsyncService async) { this.dao = dao; this.mails = mails; this.async = async; } }
      
      







рд╣рдо рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реА рд╕рднреА рд╕реЗрд╡рд╛рдПрдБ рд░рд╣реЗрдВрдЧреА:

 public class App { public final SecurityService security; public final CommentService comments; public final UserService users; public App(Context c) { c.root = this; this.security = new SecurityService(c); this.users = new UserService(c); this.comments = new CommentService(c); } }
      
      







рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред

рдкреНрд░рд╕рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдЬреИрд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред



рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 class CommentService { DAO dao; MailService mails; UserService users; public CommentService(Context c){ dao = c.dao; mails = c.mails; users = c.root.users; } public Result getComments(Req req){ List comments = dao.getComments(req); User user = users.getCurUser(); mails.sendMail(); } }
      
      







рдпрд╣ рд╕рдВрдкреВрд░реНрдг рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

 public class SingleApp { private static App app; public static synchronized App get() { if(app != null) return app; //  DAO dao = new DAO(...); MailService mails = new MailService(...); AsyncService async = new AsyncService(...); Context c = new Context(dao, mails, async); //  app = new App(c); return app; } }
      
      







рдФрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 @WebServlet("/comments") public class GetCommentsServlet extends HttpServlet { CommentService comments; public void init() { App app = SingleApp.get(); comments = app.comments; } protected void doGet(HttpServletRequest req, HttpServletResponse resp) { List result = comments.getComments(...); req.setAttribute("comments", result); req.getRequestDispatcher("/WEB-INF/jsp/comments.jsp").forward(req, resp); } }
      
      







рдкрд░рд┐рдгрд╛рдо


рджреЛ рдпрд╛ рддреАрди рд╕рд░рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА 5 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╣реИ

рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП), рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдмрд╛рдд : рд╣рдо рдЖрд╡реЗрджрди рдХреЗ рдкреВрд░реЗ рдЪрдХреНрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдХреГрдкрдпрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдпрд╣ рдЫреЛрдЯреА рд╡реЗрдм рд╕реЗрд╡рд╛ рдмрдирд╛рдИред рдФрд░ рдореИрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ред

рдХреЛрдИ рдЬреЗрдИрдИ рдирд╣реАрдВ рд╣реИ, рдХреЛрдИ рд╕реНрдкреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рд╣реИред :)



рдпрджрд┐ рдпрд╣ рд╡рд┐рд╖рдп рдкрд╛рдардХреЛрдВ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд╣рд░ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред



All Articles