<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2008年9月17日

    http://adrop.me/ 

    posted @ 2012-10-18 23:48 Lv Yuanfang 閱讀(218) | 評論 (0)編輯 收藏

         摘要: Bayeux協議(Bayeux真的不知道怎么翻。。。)Bayeux 協議-- Bayeux 1.0草案1本備忘錄狀態This document specifies a protocol for the Internet community, and requestsdiscussion and suggestions for improvement. This memo is written ...  閱讀全文

    posted @ 2009-08-16 17:42 Lv Yuanfang 閱讀(3974) | 評論 (0)編輯 收藏

    工作筆記分享

    國慶假期中,粗略看了下Unix網絡編程卷一:套接字API。進一步加深了對Linux、Unix下的socket處理。重點是非阻塞、select多路復用等。記錄筆記幾篇。其他筆記為日常摘錄等。
    用Google Notebook記錄,特發布和大家分享:
    學習筆記:
    http://www.google.com/notebook/public/09783819863799136882/BDRihIgoQtMHZkLoh?hl=zh-CN
    日常筆記:
    http://www.google.com/notebook/public/09783819863799136882/BDRihIgoQlOD34rMh?hl=zh-CN



    posted @ 2008-10-02 20:24 Lv Yuanfang 閱讀(233) | 評論 (0)編輯 收藏

    Java、Linux、C++電子書分享


    收藏的一些電子書,跟大家分享下。部分java書有下載鏈接,其他的都是抓圖,都放在Dropbox (文件在線存儲、同步、共享服務,2G免費空間,有windows、linux客戶端,本地文件和服務器共享可以同步)的共享上。需要的可以到Dropbox首頁注冊,告訴我你的帳號后,我可以把共享開放給你。我的帳號:menlong999@gmail.com
    Dropbox很不錯,客戶端速度很快,還有版本控制,強烈推薦!

    Java

    Java與模式: 閻宏的Java設計模式,講的很好
    JSP2.0技術手冊(部分)
    thinking in java 中文版第三版(全):不用多介紹了
    j-nio.zip :IBM developerWorks上java.nio教程,很不錯,帶源碼
    JUnit.in.Action中文版.pdf
    OReilly.Java.I.O.2nd.Edition.May.2006.chm
    OReilly.Java.Network.Programming.Third.Edition.Oct.2004.chm
    starting-struts2-chinese.pdf:中文的InfoQ Struts2迷你書
    Java NIO-Developing High Performance Applications.pdf
    Struts 2 in Action.pdf
    UML for Java Programmers中文版.pdf
    實用J2EE設計模式編程指南.pdf :比較老的,不過也不錯,懷舊一把

    Linux

    C++

    其他














    posted @ 2008-09-28 21:21 Lv Yuanfang 閱讀(603) | 評論 (1)編輯 收藏

    Servlet與模板方法模式

    ----Head First Pattern之模板方法模式


    這 年頭大家都用struts,或者其他MVC框架,很少有人直接用Servlet了吧,但是相信大部分人都應該知道怎么寫Servlet的吧,繼承 HttpServlet類,覆蓋里面的doGet、doPost方法即可,大部分情況下,我們都是對GET和POST一樣處理,一般也就這么寫了:
    public MyServlet extends HttpServlet{
        public void doGet(HttpServletRequest request, HttpServletResponse response){
            // 處理
        }
        public void doPost()HttpServletRequest request, HttpServletResponse response){
            // 不關心get、post請求,因此post處理直接調用get處理
            doGet(request, response);
        }
    }
    Servlet只要在web.xml中部署好之后,就可以處理瀏覽器的請求了。上面代碼可以看出來,doGet方法處理瀏覽器的GET請求,doPost處理POST請求。
    Servlet是由Tomcat之類的servlet容器來調用處理瀏覽器請求的,并需要集成基類HttpServlet,如果大家查看HttpServlet源碼的時候,就會發現,其實里面有一個
    protected void service(HttpServletRequest req, HttpServletResponse resp)
    方法,servlet容器實際調用的是service方法,service方法的實現就是根據HTTP請求的類型(GET、POST,還是其他),將處理委派給doGet、doPost等方法,由這些子類的方法來最終處理瀏覽器的請求。

    由此可以看出,HttpServlet定義了一個處理的框架或者說模板,實現Servlet只需繼承HttpServlet并實現doGet、doPost等方法即可。

    是引出模板方法模式定義的時候了,模板方法模式:在一個方法中定義一個算法的骨架,將某些步驟推遲到子類中實現。模板方法允許子類重新定義算法的某些步驟,而不改變算法的結構。
    簡單UML類圖如下:
    簡單實現一個抽象類:
    public abstract Template{
        public void final templateMethod(){
            step1();
            step2();
            hook();
        }
        public abstract void step1();
        public abstract void step2();
        public void hook(){}
    }

    這個抽象類,定義了一個算法的骨架,需要step1、step2,都是抽象方法,需要子類來實現。而templateMethod是final的,即不允許子類覆蓋。其中定義了方法的步驟,step1、step2。
    如下為具體實現:
    public ConcreteTemplate extends Template{
        public void step1(){System.out.println("step1");}
        public void step2(){System.out.println("step2");}
        public void hook(){System.out.println("hook");}
        public static void main(String[] args){
            Template temp = new ConcreteTemplate();
            temp.templateMethod();
        }
    }

    可以看到其中加入了一個hook方法,即鉤子方法。hook方法在抽象類中的實現為空,是留給子類做一些可選的操作。如果某個子類需要一些特殊額外的操作,則可以實現hook方法,當然也可以完全不用理會,因為hook在抽象類中只是空方法而已。

    其他擴展:
    1.可以定義多個hook方法
    2.hook方法可以定義一個返回為boolean的方法,有子類來決定是否調用hook方法。
    eg:抽象類的templateMethod可以這樣實現:
        public void final templateMethod(){
            step1();
            step2();
            if(allowHook())
                hook();
        }
        public boolean allowHook(){return true;}
        public void hook(){}
    子類中可以覆蓋allowHook,以決定是否調用hook方法。
    3.抽象類定義的步驟,可以有默認實現,而非全是abstract方法。HttpServlet中已經有doGet、doPost等方法的默認實現,大家可以參考其源碼實現。

    更好的一個模板方法的例子是Applet,實現自己的Applet,必須繼承自Applet,里面實現init、start、stop、destroy等方法即可。這些方法都是有默認實現的,如果看源碼,可以發現默認實現其實都是空。

    了解模板方法模式之后,大家可能意識到Servlet并且完全按照模板方法定義的那樣,而是有一些區別,比如提供默認doGet、doPost的實現等。這都說明,在實際編程中,并非生搬硬套設計模式,而是根據實際,會做些變動或變形,但其本質不變。
    不能為了模式而模式。那究竟什么時候需要設計模式呢?個人理解,當你發現你的類有問題的時候,比如有重復代碼了,感覺有些不對勁了,感覺不適應以后的擴充了,這時候不妨考慮下,是不是該設計模式出場了。。
    純粹個人理解。。有不當之處,請及時拍磚。。


    posted @ 2008-09-17 09:40 Lv Yuanfang 閱讀(1734) | 評論 (0)編輯 收藏

    我寫東西,都是在Google Docs上寫,然后用Docs的發布功能,發布到blog上。以前的幾篇都可以順利發布到blogjava上,也沒有亂碼,以前在csdn上有亂碼。今天突然不能發布了,也沒有任何錯誤提示。是Google Docs的問題,還是blogjava的問題?
    有人像我這樣用docs寫,然后發布blog嗎?

    posted @ 2008-09-17 00:02 Lv Yuanfang 閱讀(227) | 評論 (0)編輯 收藏


    posts - 11, comments - 2, trackbacks - 0, articles - 0

    Copyright © Lv Yuanfang

    主站蜘蛛池模板: 亚洲sm另类一区二区三区| 亚洲伦理一二三四| A级毛片成人网站免费看| 亚洲AV网站在线观看| 黄色三级三级免费看| 亚洲精品无码专区久久同性男| 亚洲av永久无码精品秋霞电影秋 | 色网站在线免费观看| 国产精品免费一级在线观看| 亚洲精品永久在线观看| 日韩在线免费看网站| 美女黄色免费网站| 亚洲国产成人精品无码久久久久久综合 | 性xxxx黑人与亚洲| 天天看片天天爽_免费播放| 亚洲熟女乱色一区二区三区| 国产一区视频在线免费观看| 四虎影视永久在线精品免费| 亚洲人成人无码网www电影首页| 男女午夜24式免费视频| 亚洲AV无码一区二区三区在线| 岛国av无码免费无禁网站| 噜噜噜亚洲色成人网站| 国产偷窥女洗浴在线观看亚洲| 久久这里只精品热免费99| 亚洲免费电影网站| 免费国产成人午夜私人影视 | 妞干网免费观看视频| 高h视频在线免费观看| 国产精品国产亚洲精品看不卡| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 99re6免费视频| 亚洲日韩精品国产3区 | 亚洲国产一区国产亚洲| 成人免费在线观看网站| 国产亚洲精品免费视频播放| 亚洲第一网站免费视频| 又色又污又黄无遮挡的免费视| 免费A级毛片无码A∨中文字幕下载| 亚洲欧洲日产国码久在线| 亚洲中文字幕日产乱码高清app|