基于反向控制來實現(xiàn)MovieList調用MovieFinder的功能,具體要求:1) 基于傳統(tǒng)的面向對象的方法來實現(xiàn)電影的查找和顯示。2) 使用反向控制中的構造函數法來實現(xiàn)電影的查找和顯示。3) 使用反向控制中的get/set函數法來實現(xiàn)電影的查找和顯示?;卮饐栴}:1)與2),3)的區(qū)別是什么?為什么需要反向控制?部分代碼:public interface MovieFinder { List findAll(); } public class MovieLister { private MovieFinder finder; public Movie[] moviesDirectedBy(String arg) { List allMovies = finder.findAll(); for (Iterator it = allMovies.iterator();it.hasNext();) { Movie movie = (Movie) it.next(); if (!movie.getDirector().equals(arg)) it.remove(); } return (Movie[]) allMovies.toArray(new Movie[allMovies.size()]); } public MovieLister() { finder = new MySpecialMovieFinderImplem(); }基于IOR,客戶端調用服務端,獲得當前時間(Time Service),具體要求:1) 使用面向對象的方法來完成此功能。2) 使用IDL描述接口,編譯,客戶端獲得服務端對象IOR,調用并獲得時間?;卮饐栴}:1)與2)的區(qū)別,2)的優(yōu)勢是什么?//TestTimeServer.idl module TestTimeServer{interface ObjTimeServer{ string getTime(); };};//Time Service Component ://TestTimeServerImpl.javaimport CORBA.*;class ObjTestTimeServerImplextends TestTimeServer.ObjTimeServer_Skeleton//which is generated from IDL{//Variables//Constructor//Method (Service) Implementationpublic String getTime() throws CORBA.SystemException{return “Time: “ + new Date().toString();}};// TimeServer_Server.java import CORBA.*;public class TimeServer_Server {public static void main( String[] argv ) { try { CORBA.ORB orb = CORBA.ORB.init();…ObjTestTimeServerImpl obj= new ObjTestTimeServerImpl(…);…// print stringified object reference: System.out.println( orb.object_to_string(obj)); } catch (CORBA.SystemException e){ System.err.println(e); } }};//TimeServer_Client.java import CORBA.*;public class TimeServer_Client{public static void main( String[] argv ) {// pass stringified object reference as argv[0] try {CORBA.ORB orb = CORBA.ORB.init();…CORBA.object obj = orb.string_to_object( argv[0]);…TestTimeServer.ObjTimeServer timeServer = ObjTimeServerHelper.narrow(obj);…System.out.println( timeServer.getTime() );}catch (CORBA.SystemException e) { System.err.println(e); }}};
添加回答
舉報
0/150
提交
取消