Re: [問題] 請問如何將code不要寫死,不需要重新編쐠…

看板java作者 (深深)時間16年前 (2009/10/20 14:55), 編輯推噓5(501)
留言6則, 3人參與, 最新討論串2/10 (看更多)
※ 引述《nation6238 (挺)》之銘言: : (更新說明方式)請問大家如何將code不要寫死,不需要重新編譯code就有擴充性 我想問這跟你要解決的問題有什麼關係? [delete] : PS:抓出google calendar資料目的是要寫入自己DB,日後要做資料上研究分析 如果是自己做研究, 不能重新編譯的理由是什麼? [delete] : 現在要把程式變成活(不能重新編譯)的改成 [delete] : 目前我知道重新改寫解決這問題,如果 : 不能改寫code重新編譯,要如何 設計 撰寫 呢? 又不能改寫, 談設計撰寫沒有意義不是嗎? 還是我該問哪裡可以改? 不然只能從外部以adapter處理吧? 補: 筆誤,是adapter不是adaptor… [delete] : while (calendar.getTime().compareTo(date2) <= 0) {//一天一天抓取,解決 : google一次只能抓取25DATA 測試時沒有遇到這個問題, 或是你會想批次處理再參考連結資料修改程式 可以一次做多筆insert,query,update,delete http://code.google.com/intl/en/apis/calendar/data/2.0/ developers_guide_java.html#batch 下面是我改寫的扣的, 如果不能改寫應該就不用看了.. 當然這也不OO就是了… public static void main(String args[]) throws IOException, ServiceException { CalendarService myService = new CalendarService("椅可是先跑"); myService.setUserCredentials("唉低@雞沒有.com", "怕死我"); // Prepare Query URL feedUrl = new URL( "http://www.google.com/calendar/feeds/default/private/full"); CalendarQuery myQuery = new CalendarQuery(feedUrl); myQuery.setMinimumStartTime( DateTime.parseDateTime("2009-10-10T00:00:00")); myQuery.setMaximumStartTime( DateTime.parseDateTime("2009-10-22T23:59:59")); // Query feeds CalendarEventFeed resultFeed = myService.query(myQuery, CalendarEventFeed.class); // Print the number of feeds System.out.println("Total entries: " + resultFeed.getTotalResults()); // Replace it by your way 吃AJAX送來的____? List<String> titles = getTitleNames(); processFeeds(resultFeed, titles); } private static void processFeeds( CalendarEventFeed feeds, List<String> titles) { // *以list大小動態產生array int eventCount[] = new int[titles.size()]; long eventTotalTime[] = new long[titles.size()]; // 計算各事件時間與數量 for (CalendarEventEntry entry : feeds.getEntries()) { // 日曆事件title String title = entry.getTitle().getPlainText(); if (titles.contains(title)) {// 看看有沒有在List裡!0m When t = entry.getTimes().get(0); // 計算event花費時間, 許多時間類別內部以long type表示時間絕對值 long period = t.getEndTime().getValue() - t.getStartTime().getValue(); // 對照title在list裡的位置來紀錄event的次數與總時數 int index = titles.indexOf(title); eventCount[index]++; eventTotalTime[index] += period; // 印出event資訊 System.out.print("事件: " + title); System.out.print(" 開始: " + t.getStartTime().toUiString()); System.out.print(" 結束: " + t.getEndTime().toUiString()); System.out.println(" 花費時間: "+ period /1000 /60f /60f + "小時"); } } for (int i = 0; i < titles.size(); i++) { System.out.print("事件: " + titles.get(i)); System.out.println(" 共 " + eventCount[i] + "次 " + (eventTotalTime[i] / 1000 / 60f / 60f) + "小時"); } } private static List<String getTitleNames() { // 測試資料嘛… List<String> titles = new ArrayList<String>(); titles.add("漢堡王吃早餐"); titles.add("meeting"); titles.add("聊天"); return titles; } -- 沒有這麼簡單吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.223.212.4 ※ 編輯: xlk 來自: 61.223.210.167 (10/20 21:18)

10/21 01:46, , 1F
感謝你熱心解答~目前仔細閱讀思考你撰寫 OO
10/21 01:46, 1F

10/21 01:53, , 2F
比照你寫的OO架構,再寫一個TXT讓人自由設定.算是把死
10/21 01:53, 2F

10/21 01:54, , 3F
變成活的
10/21 01:54, 3F

10/21 12:53, , 4F
properties or xml
10/21 12:53, 4F

10/21 21:06, , 5F
網頁用AJAX,因該可讀TXTorXML隨時改變頁面(UI)排版
10/21 21:06, 5F

10/26 13:59, , 6F
我想推 唉低@雞沒有 & 怕死我 耶....
10/26 13:59, 6F
文章代碼(AID): #1AtLxTxP (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 10 篇):
文章代碼(AID): #1AtLxTxP (java)