2011年12月20日 星期二

Java Design Pattern 簡易版

1. Composite Pattern

    以樹狀的架構為例, 每個節點的物件都計成相同interface, 上層的可以包含下層的物件, 只要執行上層的物件, 被包含的物件也都會自動跑一輪.

2. Default Adapter Pattern

    為了省事, 不想直接implement 某個 interface時, 利用中間加入一個abstract class 去 implement 原本要用的 interface. 以繼承這個 abtract class 的方式, 間接達到 implement 該 interface 的效果.

3. Object Adaptor Pattern

    為了讓原先已開發好的class能依後來新訂定的, 但卻不相容的interface, 能夠依照新訂定 interface 的方式執行, 建立一個新的 Adapter 去implement 新建立的interface, 再利用use 的方式使用原本先開發好的class. 所定義的adapter既能符合新的interface, 又能使用原先已開發class的功能.

4.  Decorator Pattern

就像是俄羅斯娃娃, 一層一層的把物件包起來, java io 就是一個實例. 與 Composite pattern 相異之處在於 Composite pattern 是一個比較有結構性的樹狀結構.

5. Command Pattern

將每一個動作, 都設計成一個實做 interface (Ex: Action interface) 的 class, 每個class都會有對應的command 字串, 執行時藉由指定command字串便能執行, 該command字串所對應的動作.

6. State Pattern

每個狀態各自成為一個物件,負責自己該狀態的服務,並提供切換狀態的方法。

7. Mediator Pattern

所有共事的物件彼此間互動狀態若較複雜時, 讓這些物件繼承同一個 abstract class, 而這個被大家繼承的 abstract class 具有 Mediator的reference. 每當任一個共事的物件狀態發生改變, 便告知 Mediator, 由 Mediator 來控制其他共事的物件, 執行對應的動作.

口袋裡的餐廳


1. My other place
2. 2010 新湘菜
3. 富利得利
4. Wendel
5. 菊川日本料理
6. 金色三麥
7. Pizza (國父紀念館站)
8. 紅瓦厝
9. 長青農場
10. 臨洋港生猛活海鮮
11. 慶禧宮
12. Bread& Soup
13. NY Bagels
14. 關渡水鳥92
15. 北藝大 buffet
16. 四川麵王
17. 杭州小籠包
18. 女王漢堡
19. 山東姥姥
20. 金蓬萊
21. 北京督一處
22. 肥前屋
23. 新勝廚
24.

 


To Try List
1. 玟玟 & 玫玫 cafe 合江街 73 巷 3號  25175786
2. 文慶雞文東記海南雞(忠孝復興站)
3. 港點大師
4. 闔家牛排
5. 紅屋牛排

賣麵炎仔

一碗20塊錢,看似平淡無奇的切仔麵,卻能在台北街頭屹立超過70年,是台北最老的三家切仔麵店之一。細麵配上豬油乾,灑上一點蔥花。店內的小吃,都沒有經過華麗繁複的料理方式,卻是最單純古早的美味。紅燒肉也是必點小菜,三層肉切得厚實、有嚼勁,一點都不油膩。

地址:台北市大同區安西街106號

電話:(02)2557-7087

營業時間:早上8:00 ~ 下午4:00

建宏雞肉飯

好吃的雞肉飯和滷肉飯不特別。在「建宏雞肉飯」,一碗招牌飯可以吃到雞肉和滷肉「雙拼」才稀奇。滷得軟糯、滑嫩的豬肉,一點兒也不膩,配上口感截然不同的雞肉,卻完全不會「打架」,反而非常和諧。

地址:台北市南京東路五段123巷4弄4號

電話:(02)2762-7203

營業時間:早上11:00 ~晚上9:00

2011年12月19日 星期一

Decision Tree Software

要做一個具備類似descision tree 功能, 依設定情境能提出不同建議方式的軟體, 有甚麼component 可以用呢?

2011年12月12日 星期一

Deploy Birt report in Tomcat 6

1. 遇到錯誤: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    解決方法: 將 commons-logging.jar 加入 WebViewerExample 的 web-inf/lib 之下


2. 遇到錯誤: jdbc driver not found exception
    解決方法: In order to utilize JDBC drivers to access data for your BIRT reports with the Web Viewer or through the Deployment Kit or iServer Express, the Jar files need to be placed in the proper directory
Example: tomcat6\webapps\birt\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.6.2.r262_v20110127\drivers


3.遇到錯誤: Out of memory error while running large size report
    解決方法: 在 catalina.bat 中加大 memory szie 的設定 例如:
set "CATALINA_OPTS=-Xms256M -Xmx1024M"


參考:
http://www.eclipse.org/birt/phoenix/deploy/viewerSetup.php#install_viewer
http://www.birt-exchange.org/org/devshare/deploying-birt-reports/169-placing-jdbc-drivers-for-birt-and-e-spreadsheet-reports/
http://www.eclipse.org/forums/index.php/m/505462/