清單 1. 隱藏已不使用的方法 public Person getDirector() { // We can't call getDirector() any more on the entity bean // Call the new method, through this manager List directors = getDirectors(); // Return the first one in the list return (Person)directors.item(0); }
清單 2. 用會話 bean 掩蓋數據結構 public List getCrew(String movieName) throws NamingException, RemoteException { List crew = new LinkedList(); EJBHomeFactory f = EJBHomeFactory.getInstance(); MovieHome movieHome = (MovieHome)f.lookup("java:comp/env/ejb/Movie", MovieHome.class); Movie movie = movieHome.findByName(movieName); crew.add(movie.getDirectors()); crew.add(movie.getProdUCers()); crew.add(movie.getExecutiveProducers()); // and so on... return crew; } public List getCast(String movieName) throws NamingException, RemoteException { List cast = new LinkedList(); EJBHomeFactory f = EJBHomeFactory.getInstance(); MovieHome movieHome = (MovieHome)f.lookup("java:comp/env/ejb/Movie", MovieHome.class); Movie movie = movieHome.findByName(movieName); crew.add(movie.getActors()); crew.add(movie.getStandIns()); // and so on... return cast; }
通過分離不同的應用程序層,以及使用業務邏輯來處理數據操作,您既阻止了對實體 bean 直接而且可能不安全的訪問,又為您的 Web 層創建了更有意義的方法集。本例中,會話虛包充當了實體 bean 的封裝器以及真正的業務邏輯單元,從而將原始數據轉變成有意義的信息。