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

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

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

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    #

    大家如果需要gmail,只要發郵件給我.
    地址:ivannwan@gmail.com.
    posted @ 2005-09-13 10:05 ivaneeo 閱讀(438) | 評論 (3)編輯 收藏

    兩個classes都需要使用對方特性,但其間只有一條單向連接(one-way link)。

    添加一個反向,并使修改函數(modifiers)能夠同時更新兩條連接。(注譯:這里的指針等同于句柄(handle),修改函數(modifier)指的是改變雙方關系者)

    Change Unidirectional Association to Bidirectional.png
    posted @ 2005-09-12 13:53 ivaneeo 閱讀(254) | 評論 (0)編輯 收藏

    我有這樣一句sql語句:select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'。

    我的目的是先找出所有的變量,并把變量的值替換為: V變量名。

            String statement = "select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'";
            System.out.println(statement);
            Matcher m = Pattern.compile("(\\$\\{\\s*(\\d+)\\s*\\})").matcher(statement);
            StringBuffer buffer = new StringBuffer();
            while(m.find()) {
                System.out.println("Matched:'" + m.group(1) + "' at position " + m.start());
                System.out.println("Matched:'" + m.group(2) + "' at position " + m.start());
                int temp = Integer.parseInt(m.group(2));
                if(temp == 0)
                    m.appendReplacement(buffer, "V0");
                else if(temp == 1)
                    m.appendReplacement(buffer, "V1");
                else if(temp == 2)
                    m.appendReplacement(buffer, "V2");
            }
            m.appendTail(buffer);
            System.out.println(buffer.toString());

    輸出結果:
    select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'
    Matched:'${ 0}' at position 7
    Matched:'0' at position 7
    Matched:'${ 1}' at position 13
    Matched:'1' at position 13
    Matched:'${2 }' at position 19
    Matched:'2' at position 19
    Matched:'${2 }' at position 25
    Matched:'2' at position 25
    Matched:'${0}' at position 44
    Matched:'0' at position 44
    Matched:'${2}' at position 50
    Matched:'2' at position 50
    select V0,V1,V2,V2 from t where V0='V2'

    這里要逐個替換就要使用類Matcher的appendReplacement()和appendTail()方法。
    posted @ 2005-09-12 13:31 ivaneeo 閱讀(467) | 評論 (0)編輯 收藏

    如果你愛編程,請你愛C語言;
    如果你愛C語言,請你愛指針;
    如果你愛指針,請你愛指針的指針!



    計算機學的許多知識都具有相通性,因而,不斷追趕時髦技術而忽略基本功的做法是徒勞無意的。我們最多需要"精通"三種語言,最佳拍檔是匯編、C、C++(或JAVA),很顯然,如果你"精通"了這三種語言,其它語言你應該是可以很快"熟悉"的,否則你就沒有"精通"它們。  


    在性能優化方面永遠注意80-20準備,不要優化程序中開銷不大的那80%,這是勞而無功的。除了編程上的技巧外,為提高系統的運行效率,我們通常也需要最大可能地利用各種硬件設備自身的特點來減小其運轉開銷。
    posted @ 2005-09-08 15:40 ivaneeo 閱讀(279) | 評論 (0)編輯 收藏

    有的程序員這樣寫:

    for(;;)
    {
    }

      這個語法沒有確切表達代碼的含義,我們從for(;;)看不出什么,只有弄明白for(;;)在C語言中意味著無條件循環才明白其意。

      下面是幾個"著名"的死循環:

      (1)操作系統是死循環;

      (2)WIN32程序是死循環;

      (3)嵌入式系統軟件是死循環;

      (4)多線程程序的線程處理函數是死循環。
    posted @ 2005-09-08 15:37 ivaneeo 閱讀(519) | 評論 (0)編輯 收藏

    下面列舉了網絡的消息種類,它包含有分布于每個消息地點( site)
    的"官方(official)"Usenet分級系統(hiearchy)的最高級(top- level)
    的名稱:

    分級 所處理的內容主題

    comp 有關計算機的主題。其中有許多相當重要的討論
    misc 其它主題。(最大的其它消息組為misc.misc。)
    news 有關網絡消息的主題。 盡管每個人都應該檢查包含有介紹資料和臨
         時的重要通告等這幾個消息組,但是一般說來,這些消息組并不怎么有趣
         ——除非用戶是一位新聞工作者
    rec  有娛樂方面的主題(包括運動、業余愛好、藝術及其它有趣活動)
    sci  有關科學研究的主題——也相當重要
    soc  社會組織——社會公益行業和現實社會化
    talk 長久的爭論,常常與政治有關。 它廣泛地被認為是十分令人生厭的
         主題,但要排除那些議員

        還有更多種類的消息分布沒有這么廣泛; 我們將在這個附錄的后面
    列舉一些。

    計算機組

    名稱                              描述
    comp.admin.policy                 有關地點管理策略的討論
    comp.ai                           人工智能
    comp.ai.fuzzy                     模糊集理論(模糊邏輯)
    comp.ai.genetic                   計算的遺傳算法
    comp.ai.jair.announce             《AI研究雜志》的預告和摘要(有改動)
    comp.ai.jair.papers               《AI研究雜志》出版的論文(有改動)
    comp.ai.nat-lang                  自然語言處理
    comp.ai.neural-nets               神經網絡
    comp.ai.nlang-know-rep            自然語言、知識表示(有改動)
    comp.ai.philosophy                人工智能的哲學觀點
    comp.ai.shells                    應用于外殼(shell)的AI
    comp.answers                      Usenet的文章庫(有改動)
    comp.apps.spreadsheets            各種平臺上的展開式表格
    comp.arch                         計算機結構
    comp.arch.bus.vmebus              VME總線系統(硬件與軟件)
    comp.arch,.storage                存儲系統期刊(硬件與軟件)
    comp.archives                     公用存取文檔的描述(有改動)
    comp.archives.admin               有關計算機文檔管理的期刊
    comp.archives.msdos.announce      有關MS—DOS文檔中的預告(有改動)
    comp.archives.msdos.d             MS—DOS文檔中的資料
    comp.bbs.misc                     廣告欄系統
    comp.bbs.waffle                   所有平臺上的Waffle BBS和USENET系統
    comp.benchmarks                   基準測試技術和結果
    comp.binaries.acorn               適用于Acorn機器的僅二進制形式的郵寄(有改動)
    comp.binaries.amiga               公用領域中的二進制加密程序(有改動)
    comp.binaries.apple2              適用于Apple Ⅱ的僅二進制形式的郵寄
    comp.binaries.atari.st            適用于Atari ST的僅二進制形式的郵寄(有改動)
    comp.binaries.cbm                 Commodore 8比特二進制文件的傳送(有改動)

    comp.binaries.ibm.pc              適用于IBM PC/MS—DOS的僅二進制形式的郵寄(有改動)
    comp.binaries.ibm.pc.d            有關IBM PC二進制郵寄的討論
    comp.binaries.ibm.pc.wanted       申請獲得IBM PC及與其兼容的程序
    comp.binaries.mac                 加密過的二進制Macintosh程序(有改動)
    comp. binaries.ms-windows         Microsoft Windows的二進制程序(有改動)

    comp.binaries.os2                 可在OS/2 ABI環境下使用的二進制文件(有改動)
    comp.bugs.2bsd                    有關UNIX 2BSD版本的故障報告
    comp.bugs.4bsd                    有關UNIX 4BSD版本的故障報告
    comp.bugs.4bsd.ucb-fixes          BSD UNIX的故障報告/修理(有改動)
    comp.bugs.misc                    一般UNIX的故障報告和修理(包括V7、UUCP)
    comp.bugs.sys5                    USG(系統Ⅲ、Ⅴ等)的故障報告
    comp.cad.cadence                  Candence設計系統產品的用戶
    comp.cad.compass                  Compass自動設計的EDA工具
    comp.cad.pro-engineer             參量(數)制造技術的能手/工程設計包
    comp.cad.synthesis                邏輯合成的研究和產品
    comp.client-server                主題、客戶/服務器技術
    comp.cog-eng                      認知工程
    comp.compilers                    編譯器設計、理論等等(有改動)
    comp.compression                  數據壓縮算法與理論
    comp.compression.research         數據壓縮的研究(有改動)
    comp.databases                    數據庫和數據管理——觀點和理論
    comp.databases.informix           Informix數據庫管理軟件
    comp.databases.ingres             有關INGRES產品的探討
    comp.databases.ms-access          有關Microsoft Access、Microsoft
    Windows的關系型數據庫系統的探討
    comp.databases.object             數據庫系統中的面向對象變化表
    comp.databases.oracle             Oracle公司的SQL數據庫產品
    comp.databases.paradox            有關Paradox、Borland公司所開發的適用于DOS和Microsoft Windows的數據庫的探討
    comp.databases.pick               同類挑選、相關郵寄的數據庫系統
    comp.databases.rdb                DEC開發的關系型數據庫工具Rdb
    comp.databases.sybase             工具,SQL服務器
    comp.databases.theory             高級數據庫技術的討論
    comp.databases.xbase.fox          FOX軟件公司的Xbase(類似dBASE)及兼容產品
    comp.databases.xbase.misc         Xbase產品
    comp.dcom.cell-relay              基于信元中繼的產品
    comp.dcom.fax                     Fax的硬件、軟件和協議
    comp.dcom.isdn                    綜合業務數字網(ISDN)
    comp.dcom.lans.ethernet           Ethernet/IEEE802.3協議的討論
    comp.dcom.lans.fddi               FDDI協議序列的討論
    comp.dcom.lans.misc               局域網(硬件與軟件)
    comp.dcom.lans.token-ring         令牌環網絡
    comp.dcom.modems                  數據通信(硬件與軟件)
    comp.dcom.servers                 選擇和執行數據通信服務器
    comp.dcom.sys.cisco               Cisco網路與網橋
    comp.dcom.sys.wellfleet           Wellfleet的網橋與網絡系統(硬件與軟件)

    comp.dcom.telecom                 無線通信的摘要(有改動)
    comp.dcom.telecom.tech            無線電話的技術特點
    comp.doc                          公共域的歸檔后的文檔(有改動)
    comp.doc.techreports              技術報告的清單(有改動)
    comp.dsp                          使用計算機的數字信號處理(DSP)
    comp.edu                          計算機科學的教育
    comp.emacs                        EMACS編輯器
    comp.fonts                        類型字體——設計、轉換、使用等等
    comp.graphics                     計算機圖形學、藝術、動畫、圖像處理
    comp.graphics.algorithms          生成計算機圖形的算法
    comp.graphics.animation           計算機動畫的技術特點
    comp.graphics.avs                 應用可視系統
    comp.graphics.data-explorer       IBM的可視數據開發器、a.k.a.DX
    comp.graphics.explorer            開發器的模塊可視環境(MVE)
    comp.graphics.gnuplot             GNUPLOT接口函數繪制器
    comp.graphics.opengl              Open GL三維應用程序設計接口
    comp.graphics.research            計算機圖形學的高級技術探討(有改動)
    comp.groupware                    共享接口環境(硬件與軟件)
    comp.human-factors                有關人機接口(HCI)的探討
    comp.infosystems                  信息系統
    comp.infosystems.announce         Internet信息業務的預告(有改動)
    comp.infosystems.gis              地理信息系統
    comp.infosystems.gopher           Gopher信息系統
    comp.infosystems.wais             基于Z39.50的WAIS全文本字符搜索系統
    comp.infosystems.www              全球寬帶網(WWW)
    comp.internet.library             電子庫(有改動)
    comp.ivideodisc                   交互式的視頻錄像盤
    comp.lang.ada                     Ada語言
    comp.lang.apl                     APL語言
    comp.lang.basic.misc              其他BASIC語言、特征
    comp.lang.basic.visual            Microsoft的Visual Basic和Applications
    Basic(Windows和DOS)
    comp.lang.c                       C語言
    comp.lang.c++                     C++(面向對象語言)
    comp.lang.clos                    Common Lisp目標系統
    comp.lang.dylan                   Dylan(語言)
    comp.lang.eiffel                  Eiffel(面向對象語言)
    comp.lang.forth                   FORTH語言
    comp.lang.fortran                 FORTRAN語言
    comp.lang.functional              功能語言
    comp.lang.hermes                  Hermes(分布式應用的語言)
    comp.lang.idl-pvwave              IDL和PV—WAVE語言
    comp.lang.lisp                    LISP語言
    comp.lang.lisp.mcl                Apple的Macintosh Common Lisp語言
    comp.lang.logo                    LOGO(教學語言)
    comp.lang.misc                    其它計算機語言
    comp.lang.ml                      ML語言、包括標準的ML、CAML、Lazy ML等(有改動)
    comp.lang.modula2                 Modula-2
    comp.lang.modula3                 Modula-3
    comp.lang.oberon                  Oberon語言和系統
    comp.lang.objective-c             目標C語言與環境
    comp.lang.pascal                  Pascal語言
    comp.lang.perl                    Larry Wall的Perl系統
    comp.lang.pop                     Popll和Plug用戶組
    comp.lang.postscript              PostScript(頁面描述語言)
    comp.lang.prolog                  Prolog語言
    comp.lang.sather                  Sather(面向對象語言)
    comp.lang.scheme                  Scheme(程序設計語言)
    comp.lang.sigplan                 來自ACM SIGPLAN的信息與預告(有改動)
    comp.lang.smalltalk               Smalltalk 80
    comp.lang.tcl                     Tcl(程序設計語言與有關工具)
    comp.lang.verilog                 Verilog與PLI
    comp.lang.vhdl                    VHSIC硬件描述語言,IEEE1076/87
    comp.laser.printers               激光打印機(硬件與軟件)(有改動)
    comp.lsi                          大規模集成電路(LSI)
    comp.lsi.testing                  電子電路的測試
    comp.mail.elm elm mail            系統的討論與修復
    comp.mail.headers                 來自Internet高級領導人清單中的網關
    comp.mail.maps                    各種圖片,包括UUCP圖片(有改動)
    comp.mail.mh                      隨機消息處理系統的UCI版本
    comp.mail.mime                    Internet中REC1341的多目標擴展
    comp.mail.misc                    計算機郵件的討論
    comp.mail.mush                    Mail用戶的外殼(shell)(MUSH)
    comp.mail.sendmail                BSD發送郵件局
    comp.mail.uucp                    UUCP環境下的mail
    comp.misc                         有關計算機的一般性主題
    comp.multimedia                   交互式多媒體技術
    comp.newprod                      新產品的預告(有改動)
    comp.object                       面向對象程序設計
    comp.object.logic                 集成化的面向對象與邏輯程序設計
    comp.org.acm                      有關計算機器協會的主題
    comp.org.decus                    數據設備計算機用戶協會的消息組
    comp.org.eff.news                 來自電子前沿基地的消息(有改動)
    comp.org.eff.talk                 EFF的目標、策略等
    comp.org.fidonet                  FidoNews摘要、FIDONET公司的官方消息(有改動)
    comp.org.ieee                     有關IEEE及其成員的期刊與預告
    comp.org.issnnet                  神經網絡的國際學生協會
    comp.org.lisp-users               LISP用戶協會
    comp.org.sug                      SUN用戶組織
    comp.org.usenix                   USENIX協會的活動和預告
    comp.org.usenix.roomshare         在USENIX會議期間的住宿
    comp.os.386bsd.announce           有關386bsd操作系統的預告(有改動)
    comp.os.386bsd.apps               386bsd環境下運行的應用程序
    comp.os.386bsd.bugs               有關386bsd OS與客戶的故障和修復
    comp.os.386bsd.development        有關386bsd內部的研究
    comp.os.386bsd.misc               其它組不討論的386bsd特點
    comp.os.386bsd.questions          有關386bsd的問題
    comp.os.cohernent                 Coherent(操作系統)
    comp.os.cpm                       CP/M(操作系統)
    comp.os.geos                      GEOS(由GeoWorks開發的PC機OS)
    comp.os.linux.admin               安裝與管理Linux系統
    comp.os.linux.announce            對Linux團體很重要的預告(有改動)
    comp.os.linux.development         正進行的Linux開發
    comp.os.linux.help                有關Linux問題與建議
    comp.os.linux.misc                Linux的其它特定主題
    comp.os.lynx                      Lynx OS和Lynx實時系統
    comp.os.mach                      來自MACH和其它方面的MACHOS
    comp.os.minix                     Andrew Tannenbaum的MINIX系統
    comp.os.misc                      有關OS的一般討論
    comp.os.ms-windows.advocacy       有關Microsoft Windows的思考與討論
    comp.os.ms-windows.announce       有關Microsoft Windows的預告(有改動)
    comp.os.ms-windows.apps           MS—Windows的應用程序
    comp.os.ms-windows.misc           Microsoft Windows的一般討論
    comp.os.ms-windows.nt.misc        Microsoft Windows NT的一般討論
    comp.os.ms-windows.nt.setup       Microsoft Windows NT系統的配置
    comp.os.ms-windows.programmer.misc
                                      Microsoft Windows的程序設計
    comp.os.ms-windows.programmer.tools
                                      Microsoft Windows的開發工具
    comp.os.ms-windows.programmer.win32
                                      Microsoft Windows的32位程序設計接口
    comp.os.ms-windows.setup          Microsoft Windows的安裝與配置
    comp.os.msdos.apps                MS—DOS環境下的應用程序
    comp.os.msdos.desqview            QuarterDeck的DESQview及其相關產品
    comp.os.msdos.mail-news           MS—DOS管理的郵件和網絡消息系統
    comp.os.msdos.misc                有關MS—DOS機器的其它主題
    comp.os.msdos.pcgeos              GeoWorks PC/GEOS與其它PC/GEOS的軟件包

    comp.os.msdos.programmer          MS—DOS機器上的程序設計
    comp.os.msdos.programmer.turbovision
                                      Borland公司的文本應用程序庫
    comp.os.os2.advocacy              支持與鐘愛OS/2
    comp.os.os2.announce              有關OS/2的消息和預告(有改動)
    comp.os.os2.apps                  OS/2的應用程序
    comp.os.os2.beta                  OS/2的β版
    comp.os.os2.bugs                  OS/2的故障報告、修復和工作狀況
    comp.os.os2.misc                  OS/2的其它主題
    comp.os.os2.multimedia            OS/2系統上的多媒體
    comp.os.os2.networking            OS/2的環境下的聯網
    comp.os.os2.programmer.misc       OS/2的機器上的程序設計
    comp.os.os2.programmer.porting    移植軟件到OS/2上
    comp.os.os2.setup                 OS/2的安裝與配置
    comp.os.os2.verlx                 OS/2(1.0~1.3版)
    comp.os.os9                       OS/9(類似UNIX的實時操作系統)
    comp.os.qnx                       QNX OS下的使用與開發
    comp.os.research                  操作系統及其相關領域(有改動)
    comp.os.vms                       DEC公司的VAX計算機系列與VMS
    comp.os.vxworks                   VxWorks(實時OS)
    comp.os.xinu                      XINU(由Purdue大學、D.Comer開發的OS)
    comp.parallel                     大規模并行硬件/軟件(有改動)
    comp.parallel.pvm                 PVM多個計算機并行化系統
    comp.patents                      計算機技術的專利(有改動)
    comp.periphs                      外部設備
    comp.periphs.scsi                 基于SCSI的外部設備
    comp.programming                  脫離于語言和OS的程序設計討論
    comp.programming.literate         能閱讀的程序和程序設計工具
    comp.protocols.appletalk          Apple總線的硬件、軟件
    comp.protocols.dicom              醫學數字圖像和通信
    comp.protocols.ibm                連網、IBM主機
    comp.protocols.iso                ISO協議堆棧
    comp.protocols.kerberos           Kerberos(確認服務器)
    comp.protocols.kermit             Kermit(有改動)
    comp.protocols.misc               各種類型的協議
    comp.protocols.nfs                網絡文件系統(NFS)的協議
    comp.protocols.ppp                Internet的點對點(對等)協議
    comp.protocols.tcp-ip             TCP/IP網絡協議
    comp.protocols.tcp-ip.ibmpc       PC機及其兼容機的TCP/IP
    comp.pubish.cdrom.hardware        由CD—ROM公布的硬件
    comp.pubish.cdrom.multimedia      多媒體創作和出版的軟件
    comp.pubish.cdrom.software        由CD—ROM公布的軟件
    comp.realtime                     實時計算機的探討
    comp.research.japan               日本的研究(有改動)
    comp.risks                        來自計算機和用戶的大眾風險(有改動)
    comp.robotics                     機器人及其應用
    comp.security.misc                有關計算機和網絡的安全保密討論
    comp.security.unix                UNIX安全保密性
    comp.simulation                   模擬方法、問題、用法(有改動)
    comp.society                      技術對社會的影響(有改動)
    comp.society.cu-digest            未公開的計算機摘要(有改動)
    comp.society.development          發展中國家的計算機技術
    comp.society.folklore             計算機的歷史與文化、過去與現在(有改動)

    comp.society.futures              影響未來計算機技術的大事
    comp.society.privacy              技術對個人的影響(有改動)
    comp.soft-sys.khoros              Khoros X11(可視化系統)
    comp.soft-sys.matlab              MathWorks(計算與可視化軟件包)
    comp.soft-sys.sas                 SAS(統計學軟件包)
    comp.soft-sys.shazam              SHAZAM(計量經濟學的計算機程序)
    comp.soft-sys.spss                SPSS(統計學軟件包)
    comp.soft-sys.wavefront           波前(Wavefront)軟件產品、問題等
    comp.software-eng                 軟件工程及其相關主題
    comp.software.licensing           軟件許可技術
    comp.software.testing             測試計算機系統
    comp.sources.3bl                  只適用于AT&T 3b1的源代碼郵寄(有改動)
    comp.sources.acorn                只適用于Acorn的源代碼郵寄(有改動)
    comp.sources.amiga                只適用于Amiga的源代碼郵寄(有改動)
    comp.sources.apple2               Apple Ⅱ的源代碼和討論(有改動)
    comp.sources.atari.st             只適用于Atari ST的源代碼郵寄(有改動)
    comp.sources.bugs                 有關郵寄的源代碼的故障報告、修復與探討

    comp.sources.d                    源代碼郵寄的討論
    comp.sources.games                游戲軟件的郵寄(有改動)
    comp.sources.games.bugs           有關游戲軟件郵寄的故障報告與修復
    comp.sources.hp48                 用于HP48和HP28計算機的程序(有改動)
    comp.sources.mac                  用于Macintosh的軟件(有改動)
    comp.sources.misc                 軟件的郵寄(有改動)
    comp.sources.postscript           適用于用PostScript編寫的程序的源代碼(有改動)
    comp.sources.reviewed             由同等刊物評價的源代碼(有改動)
    comp.sources.sun                  Sun工作站上的軟件(有改動)
    comp.sources.testers              尋找測試軟件的人員
    comp.sources.unix                 完全面向UNIX源代碼的郵寄(有改動)
    comp.sources.wanted               軟件需求和修復
    comp.sources.x                    適于X Windows系統的軟件(有改動)
    comp.specification                正式規范的語言和方法學
    comp.specification.z              Z(正式規范的符號)
    comp.speech                       語音科學和技術的研究與應用
    comp.std.c                        C語言標準
    comp.std.c++                      C++語言、庫、標準
    comp.std.internet                 國際標準
    comp.std.lisp                     支持標準的用戶組織(ALU)(有改動)
    comp.std.misc                     有關各種標準的討論
    comp.std.mumps                    MUMPS領域的X11.1委員會(有改動)
    comp.std.unix                     UNIX的P1003委員會(有改動)
    comp.std.wireless                 無線網絡技術的測試標準(有改動)
    comp.sw.components                軟件單元及其相關技術
    comp.sys.3b1                      AT&T7300/3B1/UNIX PC
    comp.sys.acorn                    基于Acorn和ARM的計算機
    comp.sys.acorn.advocacy           為何Acorn計算機和程序的性能更好
    comp.sys.acorn.announce           對Acorn與ARM用戶的預告(有改動)
    comp.sys.acorn.tech               Acorn和ARM的產品(硬件與軟件)
    comp.sys.alliant                  Alliant計算機
    comp.sys.amiga.advocacy           為何Amiga比XYZ的性能更好
    comp.sys.amiga.announce           有關Amiga的預告(有改動)
    comp.sys.amiga.applications       其它的應用
    comp.sys.amiga.audio              音樂、MIDI、語言合成及其它聲音
    comp.sys.amiga.datacomm           傳送和接收字節數據的方法
    comp.sys.amiga.emulations         各種硬件和軟件的仿真器
    comp.sys.amiga.games              有Amiga上游戲的討論
    comp.sys.amiga.graphics           表格、圖形、圖片等等
    comp.sys.amiga.hardware           Amiga計算機的硬件、問題與解答、期刊等等
    comp.sys.amiga.introduction       Amiga的新成員
    comp.sys.amiga.marketplace        尋找Amiga、價格等的場所
    comp.sys.amiga.misc               其它Amiga消息組未包含的主題
    comp.sys.amiga.multimedia         動畫、視頻信號及多媒體
    comp.sys.amiga.programmer         討論代碼的開發者和業余愛好者
    comp.sys.amiga.reviews            有關Amiga的硬件和軟件的刊物(有改動)
    comp.sys.appleo                   Appllo計算機系統
    comp.sys.apple2                   AppleⅡ微機
    comp.sys.apple2.comm              AppleⅡ數據通信
    comp.sys.apple2.gno               AppleⅡ和GNO多任務環境
    comp.sys.apple2.marketplace       AppleⅡ設備的買、賣及交易
    comp.sys.apple2.programmer        AppleⅡ的程序設計
    comp.sys.apple2.usergroups        有關AppleⅡ用戶組的詳細情況
    comp.sys.atari.8bit               8位Atari微機
    comp.sys.atari.advocacy           Atari計算機上的病毒侵襲和防御
    comp.sys.atari.st                 16位的Atari微機
    comp.sys.atari.st.tech            Atari ST的硬件與軟件
    comp.sys.att                      AT&T微機
    comp.sys.cbm                      Commordore微機
    comp.sys.concurrent               計算機的并行/大規模計算線路
    comp.sys.convex                   Convex計算機系統的硬件與軟件
    comp.sys.dec                      DEC計算機系統
    comp.sys.dec.micro                DEC微機(Rainbow,專用350/380)
    comp.sys.encore                   Encore的MultiMax計算機
    comp.sys.harris                   Harris計算機系統、特別是實時系統
    comp.sys.hp                       HP(惠普)設備
    comp.sys.hp.apps                  所有HP平臺上的軟件和應用程序
    comp.sys.hp.hardware              HP系統硬件
    comp.sys.hp.hpux                  有關HP—UX和9000系列計算機的觀點
    comp.sys.hp.misc                  其它HP消息組沒有包含的觀點
    comp.sys.hp.mpe                   有關MPE和3000系列計算機的觀點
    comp.sys.hp48                     HP48和HP28的計算器
    comp.sys.ibm.pc.demos             表現case程序員技巧的演示程序
    comp.sys.ibm.pc.digest            IBM PC、PC/XT及PC/AT機(有改動)
    comp.sys.ibm.pc.games.action      PC機上的Arcade風格的游戲
    comp.sys.ibm.pc.games.adventure   PC機上的探險(non-prg)游戲
    comp.sys.ibm.pc.games.announce    對所有PC機游戲者的預告(有改動)
    comp.sys.ibm.pc.games.flight-sim  PC機上的飛行模擬
    comp.sys.ibm.pc.games.misc        其它PC消息組不包含的游戲
    comp.sys.ibm.pc.games.rpg         PC機上自己充當角色的游戲
    comp.sys.ibm.pc.games.strategic   PC機上的策略/計劃游戲
    comp.sys.ibm.pc.hardware          XT/AT/EISA硬件、任何買主
    comp.sys.ibm.pc.hardware.cd-rom   PC機上的CD—ROM驅動器和接口
    comp.sys.ibm.pc.hardware.chips    處理器、cache(高速緩沖存)、內存條等等

    comp.sys.ibm.pc.hardware.comm     PC機的調制解調器和通信卡
    comp.sys.ibm.pc.hardware.misc     其它PC機硬件的主題
    comp.sys.ibm.pc.hardware.networking
                                      PC機的網絡硬件和設備
    comp.sys.ibm.pc.hardware.storage  硬盤驅動器和其它PC機存儲設備
    comp.sys.ibm.pc.hardware.system   整個IBM—PC計算機和無性(clone)系統
    comp.sys.ibm.pc.hardware.video    PC機的視頻卡和監視系統
    comp.sys.ibm.pc.misc              IBM—PC機的討論
    comp.sys.ibm.pc.rt                有關IBM RT計算機的主題
    comp.sys.ibm.pc.soundcard         PC機的聲音卡(硬件和軟件)
    comp.sys.ibm.pc2.hardware         微通道硬件、任何賣主
    comp.sys.intel                    Intel系統和部件
    comp.sys.isis                     ISIS分布系統(Cornell大學)
    comp.sys.laptops                  Laptop計算機(便攜式)
    comp.sys.m6809                    6809
    comp.sys.m68k                     68K
    comp.sys.m68k.pc                  基于68K的PC機(有改動)
    comp.sys.m88k                     基于88K的PC機
    comp.sys.mac.advocacy             Macintosh機與其它計算機的比較
    comp.sys.mac.announce             Macintosh用戶的注意事項(有改動)
    comp.sys.mac.apps                 Macintosh機的應用軟件
    comp.sys.mac.comm                 Macintosh通信
    comp.sys.mac.databases            Macintosh數據庫系統
    comp.sys.mac.digest               Macintosh的信息和使用(不包括程序(有改動))
    comp.sys.mac.games                Macintosh機上的游戲
    comp.sys.mac.graphics             Macintosh圖形系統:著色、繪圖、三維、CAD和動畫
    comp.sys.mac.hardware             有關Macintosh硬件的觀點
    comp.sys.mac.hypercard            Macintosh超級卡的信息和應用
    comp.sys.mac.misc                 有關Macintosh的一般討論
    comp.sys.mac.oop.macapp3          Macintosh,3版(面向對象系統)
    comp.sys.mac.oop.misc             Macintosh機上的面向對象程序設計
    comp.sys.mac.oop.tcl              用于對象程序設計的Symantec的THINK類庫

    comp.sys.mac.portables            Laptop的Macintosh機
    comp.sys.mac.programmer           對Macintosh機的程序設計
    comp.sys.mac.scitech              科技工作中所使用的Macintosh機
    comp.sys.mac.system               Macintosh系統軟件
    comp.sys.mac.wanted               "I want XYZ for my Mac."郵寄
    comp.sys.mentor                   Mentor圖形產品和Silicon編譯器系統
    comp.sys.mips                     基于MIPS芯片的系統
    comp.sys.misc                     對所有種類計算機的討論
    comp.sys.ncr                      NCR計算機
    comp.sys.newton.announce          Newton信息郵寄(有改動)
    comp.sys.newton.misc              有關Newton系統的討論
    comp.sys.newton.programmer        Newton軟件開發
    comp.sys.next.advocacy            NeXT信仰/主張
    comp.sys.next.announce            有關NeXT的預告(有改動)
    comp.sys.next.bugs                對已知的NeXT故障的討論和解決方法
    comp.sys.next.hardware            NeXT計算機的物理特性
    comp.sys.next.marketplace         NeXT硬件、軟件和任務
    comp.sys.next.misc                NeXT的一般討論
    comp.sys.next.programmer          有關NeXT的程序設計觀點
    comp.sys.next.software            NeXT程序的功能、應用和適用性
    comp.sys.next.sysadmin            NeXT系統管理
    comp.sys.novell                   Novell Netware產品
    comp.sys.nsc.32k                  國家半導體32000系統芯片
    comp.sys.palmtops                 掌上功能強大的計算器
    comp.sys.pen                      通過筆劃與計算交流
    comp.sys.powerpc                  PowerPC機
    comp.sys.prime                    Prime計算機產品
    comp.sys.proteon                  Proteon網關產品
    comp.sys.psion                    PSION個人計算機和創辦者
    comp.sys.pyramid                  Pyramid 90x計算機
    comp.sys.ridge                    Ridge 32計算機與ROS
    comp.sys.sequent                  Sequent系統(平衡和對稱式)
    comp.sys.sgi.admin                SGI系統管理
    comp.sys.sgi.announce             向SGI團體的預告(有改動)
    comp.sys.sgi.apps                 Iris上運行的應用程序
    comp.sys.sgi.bugs                 IRIX操作系統中發現的故障
    comp.sys.sgi.graphics             SGI圖形上的圖形包和討論
    comp.sys.sgi.hardware             Iris計算機的基本系統和外設
    comp.sys.sgi.misc                 有關Silicon圖形機器的一般討論
    comp.sys.sinclair                 Sinclair計算機——例如,ZX81、Spectrum和QL
    comp.sys.stratus                  Stratus產品,包括System/88、CPS—32、VOS和FIX
    comp.sys.sun.admin                Sun系統管理
    comp.sys.sun.announce             Sun的預告和Sunergy郵件(有改動)
    comp.sys.sub.apps                 Sun計算機系統的軟件應用
    comp.sys.sun.hardware             Sun微機系統的硬件
    comp.sys.sun.misc                 有關Sun產品的討論
    comp.sys.sun.wanted               尋找Sun產品支持的人員
    comp.sys.tahoe                    CCI6/32、Harris SCX/7和Sperry 7000計算機
    comp.sys.tandy                    Tandy計算機,新式的和老式的
    comp.sys.ti                       TI(德克薩斯設備公司)
    comp.sys.transputer               Transputer計算機和Occam語言
    comp.sys.unisys                   Sperry、Burroughs、Convergent和Unisys系統
    comp.sys.xerox                    Xerox 1100工作站和協議
    comp.sys.zenith.z100              Zenith Z-100(Heaty H-100)計算機系列
    comp.terminals                    終端
    comp.text                         正文處理觀點和方法
    comp.text.desktop                 桌面排版技術和技巧
    comp.text.frame                   FrameMaker(桌面排版)
    comp.text.interleaf               Interleaf軟件、應用和使用
    comp.text.sgml                    ISO8879 SGML、結構化文檔和輔助語言
    comp.text.tex                     TeX和LaTeX系統和宏
    comp.theory.info-retrieval        信息檢索主題(有改動)
    comp.unix.admin                   基于UNIX系統的管理
    comp.unix.advocacy                對UNIX及其各版本的贊成與反對的爭論
    comp.unix.aix                     UNIX的IBM版本
    comp.unix.amiga                   Amiga上的MINIX、SYSV4及其它*nix
    comp.unix.aux                     Macintosh Ⅱ計算機上的UNIX
    comp.unix.bsd                     Berkeley軟件分布UNIX
    comp.unix.dos-under-unix          在UNIX環境下運行MS—DOS
    comp.unix.internals               Hacking的UNIX內部技術
    comp.unix.large                   主機和大型網絡上的UNIX
    comp.unix.misc                    其它消息組沒有包含的UNIX主題
    comp.unix.osf.misc                開放軟件基金會的產品
    comp.unix.osf.osf1                OSF/1
    comp.unix.pc-clone.16bit          286體系結構的UNIX
    comp.unix.pc-clone.32bit          386和486體系結構的UNIX
    comp.unix.programmer              UNIX環境下的程序設計
    comp.unix.questions               UNIX新組
    comp.unix.shell                   UNIX Shell的使用和程序設計
    comp.unix.sys3                    System Ⅲ的UNIX
    comp.unix.sys5.misc               早于版本3的System Ⅴ版本
    comp.unix.sys5.r3                 System Ⅴ的版本3
    comp.unix.sys5.r4                 System Ⅴ的版本4
    comp.unix.ultrix                  DEC的ULTRIX
    comp.unix.unixware                Novell的UnixWare產品
    comp.unix.user-friendly           有關UNIX友好用戶界面的討論
    comp.unix.wizards                 UNIX奇才(有改動)
    comp.unix.xenix.imsc              有關XENIX(不包括SCO)的討論
    comp.unix.xenix.sco               由Santa Cru2 Operation開發的XENIX版本

    comp.virus                        計算機病毒和安全(有改動)
    comp.windows.garnet               Garnet用戶接口的開發環境
    comp.windows.interviews           InterViews的面向對象Windows系統
    comp.windows.misc                 有關Windows系統的各種觀點
    comp.windows.news                 Sun微機系統的NeWS Windows系統
    comp.windows.open-look            Open Look GUI
    comp.windows.suit                 SUIT的用戶接口界面工具包
    comp.windows.x                    X Windows系統
    comp.windows.x.apps               X的應用,如獲取和使用(但不包括程序設計)

    comp.windows.x.i386unix           XFree86窗口系統及其它
    comp.windows.x.intrinsics         X toolkit(工具包)
    comp.windows.x.pex                X Windows的PHIGS增強版

    posted @ 2005-09-07 14:15 ivaneeo 閱讀(620) | 評論 (0)編輯 收藏

    作法(Mechanics)
      • 修改presentation class,使其成為domain classObserver[GoF]
          • ==》如果尚未有domain class,就建立一個。
          • ==》如果沒有[從presentation class到domain class]的關聯性(link),就將domain class保存于presentation class的一個值域中。
      • 針對GUI class內的domain data,使用Self Encapsulate Field(171)。
      • 編譯,測試。
      • 在事件處理函數(event handler)中加上對設值函數(setter)的調用,以[直接訪問方式]更新GUI組件。
          • ==》在事件處理函數中放一個設值函數(setter),利用它將GUI組件更新為domain data的當前值。當然這其實沒有必要,你只不過是拿它的值設定它自己。但是這樣使用setter,便是允許其中的任何動作得以于日后被執行起來,這是這一步驟的意義所在。
          • ==》進行這個改變時,對于組件,不要使用取值函數(getter),應該采取[直接取用]方式,因為稍后我們將修改取值函數(getter),使其從domain object(而非GUI組件)取值。設值函數(setter)也將遭受類似修改。
          • ==》確保測試代碼能夠觸發新添加的事件處理(event handling)機制。
      • 編譯,測試。
      • 在domain class中定義數據及其相關訪問函數(accessors)。
          • ==》確保domain class中的設值函數(setter)能夠觸發Observer模式的通報機制(notify mechanism)。
          • ==》對于被觀察(被監視)的數據,在domain class中使用[與presentation class所用的相同型別](通常是字符串)來保存。后續重構中你可以自由改變這個數據型別。
      • 修改presentation class中的訪問函數(accessors),將它們的操作對象改為domain object(而非GUI組件)。
      • 修改observer的update(),使其從相應的domain object中將所需數據拷貝給GUI組件。
      • 編譯,測試。
    posted @ 2005-09-07 12:19 ivaneeo 閱讀(305) | 評論 (0)編輯 收藏

    范例(Examples)
    我們的范例其行為非常簡單:當用戶修改文本框中的數值,另兩個文本框就會自動更新.如果你修改Start或End,length就會自動成為兩者計算所得的長度;如果你修改length,End就會隨之變動.

    一開始,所有函數都放在IntervalWindow class中.所有文本框都能夠響應[失去鍵盤焦點](loss of focus)這一事件。
    public class IntervalWindow extends Frame...
    ??? java.awt.TextField _startField;
    ??? java.awt.TextField _endField;
    ??? java.awt.TextField _lengthField;

    ??? class SymFocus extends java.awt.event.FocusAdapter
    ??? {
    ??? ?? public void focusLost(java.awt.event.FocusEvent event)
    ??? ?? {
    ??? ?? ?? Object object = event.getSource();
    ???
    ??? ?? ?? if(object == _startField)
    ??? ?? ?? ?? StartField_FocusLost(event);
    ??? ?? ?? else if(object = _endField)
    ??? ?? ?? ?? EndField_FocusLost(event);
    ??? ?? ?? else if(object = _lengthField)
    ??? ?? ?? ?? LengthField_FocusLost(event);
    ??? ?? }
    }

    Start文本框失去焦點,事件監聽器調用StartField_FocusLost()。另兩個文本框的處理也類似。事件處理函數大致如下:
    void StartField_FocusLost(java.awt.event.FocusEvent event) {
    ??? if(isNotInteger(_startField.getText()))
    ??? ?? _startField.setText("0");
    ??? calculateLength();
    }
    void EndField_FocusLost(java.awt.event.FocusEvent event) {
    ??? if(isNotInteger(_endField.getText()))
    ??? ?? _endField.setText("0");
    ??? calculateLength();
    }
    void LengthField_FocusLost(java.awt.event.FocusEvent event) {
    ??? if(isNotInteger(_lengthField.getText()))
    ??? ?? _lengthField.setText("0");
    ??? calculateLength();
    }

    如果文本框的字符串無法轉換為一個整數,那么該文本框的內容將變成0。而后,調用相關計算函數:
    void calculateLength() {
    ??? try {
    ??? ?? int start = Integer.parseInt(_startField.getText());
    ??? ?? int end = Integer.parseInt(_endField.getText());
    ??? ?? int length = end - start;
    ??? ?? _lengthField.setText(String.valueOf(length));
    ??? } catch(NumberFormatException e) {
    ??? ?? throw new RuntimeException("Unexpected Number Format Error");
    ??? }
    }
    void calculateEnd() {
    ??? try {
    ??? ?? int start = Integer.parseInt(_startField.getText());
    ??? ?? int end = Integer.parseInt(_endField.getText());
    ??? ?? int end = start + length;
    ??? ?? _endField.setText(String.valueOf(end));
    ??? } catch(NumberFormatException e) {
    ??? ?? throw new RuntimeException("Unexpected Number Format Error");
    ??? }
    }
    我的任務就是非視覺性的計算邏輯從GUI中分離出來。基本上這就意味將calculateLength()和calculateEnd()移到一個獨立的domain class去。為了這一目的,我需要能夠在不引用窗口類的前提取用StartEndlength三個文本框的值。唯一辦法就是將這些數據復制到domain class中,并保持與GUI class數據同步。這就是Duplicate Observed Data(189)的任務。

    截至目前我還沒有一個domain class,所以我著手建立一個:
    class Interval extends Observable {}

    IntervalWindow
    class需要與此嶄新的domain class建立一個關聯:
    private Interval _subject;

    然后,我需要合理地初始化_subject值域,并把IntervalWindow class變成Interval class的一個Observer。這很簡單,只需把下列代碼放進IntervalWindow構造函數中就可以了:
    _subject = new Interval();
    _subject.addObserver(this);
    update(_subject, null);

    我喜歡把這段代碼放在整個建構過程的最后。其中對update()的調用可以確保:當我把數據復制到domain class后,GUI將根據domain class進行初始化。update()是在java.util.observer接口中聲明的,因此我必須讓IntervalWindow class實現這一接口:
    public class IntervalWindow extends Frame implements Observer
    然后我還需要為IntervalWindow class建立一個update()。此刻我先令它為空:
    public void update(Observable observed, Object arg)? {
    }
    現在我可以編譯并測試了。到目前為止我還沒有作出任何真正的修改。呵呵,小心駛得萬年船。

    接下來我把注意力轉移到文本框。一如往常我每次只改動一點點。為了賣弄一下我的英語能力,我從End文本框開始。第一件要做的事就是實施Self Encapsulate Field(171)。文本框的更新是通過getText()和setText()兩函數實現的,因此我所建立的訪問函數(accessors)需要調用這兩個函數:

    String getEnd() {
    ??? return _endField.getText();
    }
    void setEnd(String arg) {
    ??? _endField.setText(arg);
    }
    然后,找出_endField的所有引用點,將它們替換為適當的訪問函數:
    void calculateLength() {
    ??? try {
    ??? ?? int start = Integer.parseInt(_startField.getText());
    ??? ?? int end = Integer.parseInt(getEnd());
    ??? ?? int length = end - start;
    ??? ?? _lengthField.setText(String.valueOf(length));
    ??? } catch(NumberFormatException e) {
    ??? ?? throw new RuntimeException("Unexpected Number Format Error");
    ??? }
    }
    void calculateEnd() {
    ??? try {
    ??? ?? int start = Integer.parseInt(_startField.getText());
    ??? ?? int end = Integer.parseInt(_endField.getText());
    ??? ?? int end = start + length;
    ??? ?? setEnd(String.valueOf(end));
    ??? } catch(NumberFormatException e) {
    ??? ?? throw new RuntimeException("Unexpected Number Format Error");
    ??? }
    }
    void EndField_FocusLost(java.awt.event.FocusEvent event) {
    ??? if(isNotInteger(getEnd()))
    ??? ?? setEnd("0");
    ??? calculateLength();
    }

    這是Self Encapsulate Field(171)的標準過程。然后當你處理GUI class時,情況還更復雜些:用戶可以直接(通過GUI)修改文本框內容,不必調用setEnd()。因此我需要在GUI class的事件處理函數中加上對setEnd()的調用。這個動作把End文本框設定為其當前值。當然,這沒帶來什么影響,但是通過這樣的方式,我們可以確保用戶的輸入的確是通過設值函數(setter)進行的:
    void EndField_FocusLost(java.awt.event.FocusEvent event) {
    ??? setEnd(_endField.getText());
    ??? if(isNotInteger(getEnd()))

    ??? ?? setEnd("0");
    ??? calculateLength();
    }

    上述調用動作中,我并沒有使用上一頁的getEnd()取得End文 本框當前內容,而是直接取用該文本框。之所以這樣做是因為,隨后的重構將使上一頁的getEnd()從domain object(而非文本框)身上取值。那時如果這里用的是getEnd()函數,每當用戶修改文本框內容,這里就會將文本框又改回原值。所以我必須使用 [直接訪問文本框]的方式獲得當前值。現在我可以編譯并測試值域封裝后的行為了。

    現在,在domain class中加入_end值域:
    class Interval...
    ??? private String _end = "0";
    在這里,我給它的初始值和GUI class給它的初值是一樣的。然后我再加入取值/設值函數(getter/setter):
    class Interval...
    ??? String getEnd() {
    ??? ?? return _end;
    ??? }
    ??? void setEnd(String arg) {
    ??? ?? _end = arg;
    ??? ?? setChanged();
    ??? ?? notifyObservers();
    ??? }

    由于使用了Observer模式,我必須在設值函數(setter) 中加上[發出通告]動作(即所謂notification code)。我把_end聲明為一個字符串,而不是一個看似更合理的整數,這是因為我希望將修改量減至最少。將來成功復制數據完畢后,我可以自由自在地于 domain class內部把_end聲明為整數。

    現在,我可以再編譯并測試一次。我希望通過所有這些預備工作,將下面這個較為棘手的重構步驟的風險降至最低。

    首先,修改IntervalWindow class的訪問函數,令它們改用Interval對象:
    class IntervalWindow...
    ??? String getEnd() {
    ??? ?? return _subject.getEnd();
    ??? }
    ??? void setEnd(String arg) {
    ??? ?? _subject.setEnd(arg);
    ??? }
    同時也修改update()函數,確保GUIInterval對象發來的通告做出響應:
    class IntervalWindow...
    ??? public void update(Observable observed, Object arg) {
    ??? ?? _endField.setText(_subject.getEnd());
    ??? }
    這是另一個需要[直接取用文本框]的地點。如果我調用的是設值函數(setter),程序將陷入無限遞歸調用(這是因為IntervalWindow的設 值函數setEnd()調用了Interval。setEnd(),一如稍早行所示:而Interval.setEnd()又調用 notifyObservers(),導致IntervalWindow.update()又被調用)。

    現在,我可以編譯并測試,數據都恰如其分地被復制了。

    另兩個文本框也如法炮制。完成之后,我可以使用Move Method(142)將calculateEnd()和calculateLength()搬到Interval class。這么一來,我就擁有一個[包容所有domain behavior和domain data]并與GUI code分離的domain class了。

    如果上述工作都完成了,我就會考慮徹底擺脫這個GUI class。如果GUI class是個較為老舊的AWT class,我會考慮將它換成一個比較好看的Swing class,而且后者的坐標定位能力也比較強。我可以在domain class之上建立一個Swing GUI。這樣,只要我高興,隨時可以去掉老舊的GUI class。

    使用事件監聽器(Event Listeners)

    如果你使用事件監聽器(event listener)而不是Observer/Observable模式,仍然可以實施Duplicate Observed Data(189)。這種情況下,你需要在domain model中建立一個listener class和一個event class。然后,你需要對domain object注冊listeners,就像前例對observable對象注冊observers一樣。每當domain object發生變化(類似上例的update()函數被調用),就向listeners發送一個事件(event)。IntervalWindow class可以利用一個inner class(內嵌類)來實現監聽器接口(listener interface),并在適當時候調用適當的update()函數。
    posted @ 2005-09-06 11:07 ivaneeo 閱讀(605) | 評論 (0)編輯 收藏

    動機(Motivation)
    一個分層良好的系統,應該將處理用戶界面(UI)和處理業務邏輯(business logic)的代碼分開。之所以這樣做,原因有以下幾點:(1)你可能需要使用數個不同的用戶界面來表現相同的業務邏輯;如果同時承擔兩種責任,用戶界面 會變得過分復雜;(2)與GUI隔離之后,domain objects的維護和演化都會更容易;你甚至可以讓不同的開發者負責不同部分的開發。

    如果你遇到的代碼是以雙層(two-tiered)方式開發,業務邏輯被內嵌于用戶界面(UI)之中,你就有必要將行為分離出來。其中的主要工作就是函數的分離和搬移。但數據就不同了:你不能僅僅只是移動數據,你必須將它復制到新建部位中,并提供相應的同步機制。
    posted @ 2005-09-05 17:04 ivaneeo 閱讀(287) | 評論 (0)編輯 收藏

    注:所謂presentation class,用以處理[數據表現形式];所謂domain class,用以處理業務邏輯。

    你有一些domain data置身于GUI控件中,而domain method需要訪問之。

    將該筆數據拷貝一個domain object中。建立一個Observer模式,用以對domain object和GUI object內的重復數據進行同步控制(sync.)。

    Duplicate Observed Data.png
    posted @ 2005-09-05 16:50 ivaneeo 閱讀(297) | 評論 (0)編輯 收藏

    僅列出標題
    共67頁: First 上一頁 39 40 41 42 43 44 45 46 47 下一頁 Last 
    主站蜘蛛池模板: 亚欧人成精品免费观看| 日本免费一二区在线电影| 91亚洲国产成人久久精品| 全免费一级毛片在线播放| 四虎影视在线看免费观看| 91亚洲国产成人精品下载| 国产成人在线观看免费网站| 中文字幕在线免费播放| ass亚洲**毛茸茸pics| 国外亚洲成AV人片在线观看| 国产乱码免费卡1卡二卡3卡| 国产精品福利在线观看免费不卡| 亚洲欧洲在线播放| 亚洲一级黄色视频| 成熟女人牲交片免费观看视频| 久久久WWW免费人成精品| 亚洲第一成人在线| 久久精品国产亚洲AV麻豆王友容| 免费无码又爽又刺激高潮| 99re在线这里只有精品免费| 香蕉视频免费在线播放| 亚洲人成人网毛片在线播放| 亚洲毛片αv无线播放一区 | 女人18一级毛片免费观看| 在线观看免费播放av片| 国产精品亚洲天堂| 亚洲午夜电影在线观看| 亚洲大尺度无码无码专区| 亚洲精品和日本精品| 蜜桃精品免费久久久久影院| 亚洲毛片在线免费观看| 人妻在线日韩免费视频| 一道本不卡免费视频| 国产尤物在线视精品在亚洲| 亚洲中文字幕无码一去台湾| 91在线精品亚洲一区二区| 亚洲精品成人片在线观看精品字幕 | 四虎成人精品永久免费AV| 一级毛片免费在线播放| 国产精品亚洲综合| 亚洲国产av玩弄放荡人妇|