חברת סטארטאפ מפתחת מערכת לניהול שירותי רשת. המערכת כוללת ממשקים ומחלקות המייצגים סוגים שונים של שירותים ויכולותיהם. לפניכם תרשים היררכיה המתאר את הקשר בין מחלקות וממשקים:
חברת סטארטאפ מפתחת מערכת לניהול שירותי רשת. המערכת כוללת ממשקים ומחלקות המייצגים סוגים שונים של שירותים ויכולותיהם. לפניכם תרשים היררכיה המתאר את הקשר בין מחלקות וממשקים:
<Interface> IConnectable <Interface> IDataStream
void connect(String p) void send(String s)
void disconnect() String receive()
boolean isConnected()
DatabaseService <Interface> INetworkSevice
void runQuery(String query) void request(String r)
void backUpDataBase()
WebService
void logRequest(String req)
void setTimeOut(int secs)
StreamingService
void configureBuffer(int size)
void optimizeStream()
הקשרים בתרשים (חץ רציף – קשר ירושה, חץ מקווקו – קשר מימוש):
- הממשק INetworkSevice יורש מהממשק IConnectable ומהממשק IDataStream (שני חיצי ירושה).
- המחלקה DatabaseService מממשת את IConnectable ואת IDataStream.
- המחלקה WebService מממשת את IDataStream.
- המחלקה StreamingService יורשת מ-WebService ומממשת את INetworkSevice. נתונים 12 קטעי קוד. ציינו עבור כל אחד מהם אם הוא תקין או שגוי. אם הקוד שגוי, יש לפרט ולנמק מדוע ולציין מה סוג השגיאה – שגיאת קומפילציה או שגיאת זמן ריצה. אין קשר בין הקטעים!
-
IConnectable c1 = new WebService();c1.connect("api.com");c1.send("hello"); -
IDataStream d1 = new StreamingService();d1.connect("stream.com"); -
StreamingService s1 = new StreamingService();s1.connect("video.com");s1.request("play video");s1.optimizeStream(); -
INetworkService n1 = new StreamingService();n1.send("start stream");n1.configureBuffer(1024); -
WebService w1 = new StreamingService();w1.receive();w1.logRequest("get status"); -
IConnectable c2 = new StreamingService();c2.disconnect();c2.send("ping"); -
IConnectable c3 = new DatabaseService();c3.connect("db.com");c3.runQuery("SELECT * FROM users;");((DatabaseService) c3).backupDatabase();System.out.println(((DatabaseService) c3).receive()); -
INetworkService n2 = new DatabaseService();n2.connect("db2.com"); -
IConnectable c4 = new WebService();((DatabaseService) c4).runQuery("DROP TABLE posts;"); -
StreamingService s2 = new WebService(); -
INetworkService n3 = new WebService(); -
IConnectable[] connections = new IConnectable[2];connections[0] = new WebService();connections[1] = new DatabaseService();((StreamingService) connections[0]).optimizeStream();
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.