亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        可配置的程序設(shè)計(jì)

        2008-12-31 00:00:00賴小平
        電腦知識(shí)與技術(shù) 2008年14期

        摘要:可配置的程序設(shè)計(jì)是為了解決面向?qū)ο蟮某绦蛟O(shè)計(jì)關(guān)于接口的局限性而提出來的一種程序設(shè)計(jì)方法,其優(yōu)勢(shì)體現(xiàn)在開發(fā)人員可以使用配置文件來更改設(shè)置,而不必重編譯應(yīng)用程序,使得業(yè)務(wù)邏輯分離出來。本文詳細(xì)介紹了一些應(yīng)用程序所使用的配置文件,從而體現(xiàn)出可配置的程序設(shè)計(jì)的優(yōu)勢(shì),程序設(shè)計(jì)必將沿著該技術(shù)路線發(fā)展下去。

        關(guān)鍵詞:面向過程;面向?qū)ο?;可配置;程序設(shè)計(jì)

        中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)14-20880-03

        1 引言

        隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用領(lǐng)域不斷擴(kuò)大,軟件的規(guī)模及結(jié)構(gòu)的復(fù)雜程度也不斷增加,為了滿足軟件生產(chǎn)在質(zhì)量和數(shù)量上的需求,軟件開發(fā)人員不斷尋求更好的軟件開發(fā)技術(shù),程序設(shè)計(jì)方法也在不斷發(fā)展。從最初的面向過程的程序設(shè)計(jì),到后來流行的面向?qū)ο蟮某绦蛟O(shè)計(jì),目前可配置的程序設(shè)計(jì)以其優(yōu)勢(shì)得到了越來越廣泛的應(yīng)用。

        2 面向過程的程序設(shè)計(jì)

        早期的計(jì)算機(jī)存儲(chǔ)器容量非常小,人們?cè)O(shè)計(jì)程序時(shí)首先考慮的問題是如何減少存儲(chǔ)器開銷,硬件的限制不容許人們考慮如何組織數(shù)據(jù)與邏輯,程序本身短小,邏輯簡(jiǎn)單,也無需人們考慮程序設(shè)計(jì)方法問題。隨著大容量存儲(chǔ)器的出現(xiàn)及計(jì)算機(jī)技術(shù)的廣泛應(yīng)用,程序編寫越來越困難,程序的大小以算術(shù)基數(shù)遞增,而程序的邏輯控制難度則以幾何基數(shù)遞增,人們不得不考慮程序設(shè)計(jì)的方法。

        最早提出的方法是面向過程的程序設(shè)計(jì)方法,是一種自上而下的設(shè)計(jì)方法,即分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。其考慮問題和解決問題的方法是:怎樣做(HOW)→怎樣做(HOW)→怎樣做(HOW)。

        面向過程的程序設(shè)計(jì)的優(yōu)點(diǎn)是易于理解和掌握,這種逐步細(xì)化問題的設(shè)計(jì)方法和大多數(shù)人的思維方式比較接近。然而,過程式設(shè)計(jì)對(duì)于比較復(fù)雜的問題,或是在開發(fā)中需求變化比較多的時(shí)候,往往顯得力不從心。這是因?yàn)檫^程式的設(shè)計(jì)是自上而下的,這要求設(shè)計(jì)者在一開始就要對(duì)需要解決的問題有一定的了解。在問題比較復(fù)雜的時(shí)候,要做到這一點(diǎn)會(huì)比較困難,而當(dāng)開發(fā)中需求變化的時(shí)候,以前對(duì)問題的理解也許會(huì)變得不再適用。事實(shí)上,開發(fā)一個(gè)系統(tǒng)的過程往往也是一個(gè)對(duì)系統(tǒng)不斷了解和學(xué)習(xí)的過程,而過程式的設(shè)計(jì)方法忽略了這一點(diǎn)。

        3 面向?qū)ο蟮某绦蛟O(shè)計(jì)

        隨著信息系統(tǒng)的加速發(fā)展,應(yīng)用程序日趨復(fù)雜化和大型化。傳統(tǒng)的軟件開發(fā)技術(shù)難以滿足發(fā)展的新要求。20世紀(jì)80年代后,面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)日趨成熟并逐漸地為計(jì)算機(jī)界所理解和接受。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法和技術(shù)是目前軟件研究和應(yīng)用開發(fā)中最活躍的一個(gè)領(lǐng)域。

        面向?qū)ο笤O(shè)計(jì)自下而上的特性,允許開發(fā)者從問題的局部開始,在開發(fā)過程中逐步加深對(duì)系統(tǒng)的理解。這些新的理解以及開發(fā)中遇到的需求變化,都會(huì)再作用到系統(tǒng)開發(fā)本身,形成一種螺旋式的開發(fā)方式。在面向?qū)ο笤O(shè)計(jì)中,類封裝了數(shù)據(jù),而類的成員函數(shù)作為其對(duì)外的接口,抽象地描述了類。用類將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)放在一起,這可以說就是面向?qū)ο笤O(shè)計(jì)方法的本質(zhì)。

        面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。其考慮問題和解決問題的方法是:有誰做(WHO)→誰是誰(WHO)→誰怎么做(HOW)。

        可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。如果把過去十年稱為“OO時(shí)代”,相信不會(huì)引起太多的異議。面向?qū)ο蠹夹g(shù)會(huì)如此受到廣泛的重視,主要是面向?qū)ο蟮乃枷虢咏诳陀^世界的實(shí)際和符合人們通常的思維方式從而易于為人們所接受。人們?cè)趥鹘y(tǒng)的OO三要素(封裝性,繼承性,多態(tài)性)的基層上發(fā)展了更多的新技術(shù),借以彌補(bǔ)OO的缺陷,使OO方法和技術(shù)能夠更好地解決軟件開發(fā)中的問題。

        然而,OO技術(shù)存在一大局限性就是:它對(duì)軟件職責(zé)的劃分是“垂直”的。在一個(gè)標(biāo)準(zhǔn)的對(duì)象繼承體系中,每一繼承類主要是負(fù)責(zé)軟件系統(tǒng)中一個(gè)特定部分的功能,對(duì)象的行為是在編譯期間被決定的。OO技術(shù)的另一大問題是接口問題。在傳統(tǒng)的OO環(huán)境下,對(duì)象開發(fā)者沒有任何辦法確保使用者按照自己的要求來使用接口。由于OO技術(shù)的這些缺點(diǎn),按照事物發(fā)展的規(guī)律,必然促使新的程序設(shè)計(jì)方法出現(xiàn)來解決這些問題。

        4 可配置的程序設(shè)計(jì)

        由于面向?qū)ο蟮某绦蛟O(shè)計(jì)存在的局限性,軟件開發(fā)者為了彌補(bǔ)該缺陷,提出了可配置的程序設(shè)計(jì)方法,用一個(gè)配置文件作為程序與外部的接口文件,這樣軟件使用者只需按照自己的要求來修改該接口文件,不需做其他任何更改就可滿足不同的需求。

        應(yīng)用程序配置文件是標(biāo)準(zhǔn)的 XML 文件,XML 標(biāo)記和屬性是區(qū)分大小寫的。它是可以按需要更改的,其優(yōu)勢(shì)體現(xiàn)在開發(fā)人員可以使用配置文件來更改設(shè)置,而不必重編譯應(yīng)用程序,使得業(yè)務(wù)邏輯分離出來。管理員可以使用配置文件來設(shè)置策略,以便影響應(yīng)用程序在計(jì)算機(jī)上運(yùn)行的方式。

        4.1 應(yīng)用服務(wù)器JBOSS的數(shù)據(jù)源配置文件

        <datasources>

        <local-tx-datasource>

        <jndi-name>jdbc/test</jndi-name>

        <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:oradb</connection-url>

        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

        <user-name>guest</user-name>

        <password>guest</password>

        <min-pool-size>0</min-pool-size>

        <max-pool-size>10</max-pool-size>

        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter

        </exception-sorter-class-name>

        </local-tx-datasource>

        </datasources>

        上面是JBOSS的一個(gè)數(shù)據(jù)源配置接口文件,存放路徑為:jboss安裝路徑→server→default→deploy→oracle-ds.xml,其連接數(shù)據(jù)庫(kù)類型為ORACLE,其中,定義了一個(gè)名為jdbc/test的數(shù)據(jù)源,其參數(shù)包括JDBC的URL,驅(qū)動(dòng)類名,用戶名及密碼等。直接使用JDBC或者通過JNDI引用數(shù)據(jù)源的編程代碼量相差無幾,但是現(xiàn)在的程序可以不用關(guān)心具體JDBC參數(shù)了。在系統(tǒng)部署后,如果數(shù)據(jù)庫(kù)的相關(guān)參數(shù)變更,只需要重新配置 oracle-ds.xml 修改其中的JDBC參數(shù),只要保證數(shù)據(jù)源的名稱不變,那么程序源代碼就無需修改。由此可見,JNDI避免了程序與數(shù)據(jù)庫(kù)之間的緊耦合,使應(yīng)用更加易于配置、易于部署。

        當(dāng)然除了ORACLE數(shù)據(jù)庫(kù)外,JBOSS還可連接其他類型的數(shù)據(jù)庫(kù),比如SQL SERVER2000,用戶只需更換一個(gè)數(shù)據(jù)庫(kù)配置文件即可,無須做其他更改。

        4.2 自定義的配置文件

        <?xml version=\"1.0\" encoding=\"GB2312\"?>

        <config>

        <runmode>0</runmode><!-- 運(yùn)行模式:0正常;1測(cè)試;2調(diào)試 -->

        <servertype>0</servertype>

        <!-- 服務(wù)器類型:0websphere,1weblogic,2jboss,3tomcat -->

        <databasetype>1</databasetype><!-- 數(shù)據(jù)庫(kù)類型:0SQL;1Oracle;-->

        <datasource>

        <connection>

        <connection-url>jdbc:oracle:thin:@192.168.10.8:1521:xbfmis</connection-url>

        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

        <user-name>fmismain</user-name>

        <password>fmismain</password

        </connection>

        </datasource>

        <performance>

        <check>1</check> <!-- 是否做性能檢查 -->

        <warn>1</warn> <!-- 警告0 不做警告1 警告 當(dāng)不滿足性能要求時(shí)是否警告 -->

        <exception>0</exception>

        <!-- 異常 0 不拋出異常 1 拋出異常 當(dāng)不滿足性能要求時(shí)是否拋出異常 -->

        </performance>

        </config>

        以上是用戶在開發(fā)程序過程中自定義的一個(gè)xml配置文件,其中包含很多用戶自定義的標(biāo)簽,比如用servertype標(biāo)簽可以設(shè)置應(yīng)用服務(wù)器類型,用databasetype標(biāo)簽設(shè)置連接的數(shù)據(jù)庫(kù)類型,用performance標(biāo)簽設(shè)置性能檢查相關(guān)的參數(shù)等等。在外部環(huán)境發(fā)生變化時(shí),用戶只需修改配置文件中相應(yīng)的參數(shù)即可,無須修改代碼,重新編譯程序,大大節(jié)省了人力和物力,增強(qiáng)了程序的可擴(kuò)展性及可重用性,而這點(diǎn)正是軟件工程提出的對(duì)應(yīng)用程序最重要的目標(biāo)。

        如今,我們正處于信息時(shí)代,有人將信息時(shí)代形容為:知識(shí)爆炸+知識(shí)共享+即時(shí)通訊+即時(shí)查詢。從海量的信息中查詢到我們所需要的信息,已經(jīng)成為應(yīng)用軟件的一個(gè)重要的必不可少的功能,自定義的配置文件一個(gè)重要的應(yīng)用就是可以實(shí)現(xiàn)通用查詢。通用查詢就是使用統(tǒng)一的查詢描述和通用查詢處理引擎,代替對(duì)不同的查詢應(yīng)用編寫不同的查詢相關(guān)代碼,把大部分需要重復(fù)編寫的部分由通用引擎來處理,通過使用通用模板和引擎,做大部分應(yīng)用開發(fā)時(shí)不需要開發(fā)頁(yè)面,不需要編寫業(yè)務(wù)邏輯,簡(jiǎn)少大量重復(fù)工作,只需要對(duì)具體應(yīng)用做一個(gè)相應(yīng)的配置就行了。

        使用基于模板和引擎的開發(fā),產(chǎn)品的質(zhì)量,如性能,可靠性等可以得到集中的控制和優(yōu)化,可以使開發(fā)人員只關(guān)注應(yīng)該關(guān)注的業(yè)務(wù)細(xì)節(jié),從技術(shù)實(shí)現(xiàn)細(xì)節(jié)中解放出來。

        配置文件框架如下:

        <?xml version=\"1.0\" encoding=\"GB18030\" ?>

        <sqldatasource>

        <sqltext type=\"\"></sqltext> <!-- 0 SQL語句;1 名稱/值對(duì);3 一個(gè)類名 -->

        <displaycolumn></displaycolumn> <!-- 以逗號(hào)分隔的字段名,設(shè)置缺省哪些列顯示 -->

        <topcount></topcount> <!-- 是否取前面多少條記錄,如果需要?jiǎng)t記錄相應(yīng)的數(shù)值 -->

        <o(jì)rderby></orderby> <!-- 排序字段列表-->

        <groupby></groupby> <!-- 分組字段列表-->

        <displaytotalrow></displaytotalrow> <!-- 是否顯示合計(jì)行 true 1 -->

        <displaytotalcolumn></displaytotalcolumn> <!-- 是否顯示合計(jì)列 true 1 -->

        <parameters> <!-- 參數(shù)定義 注意,參數(shù)是完全按照在下面出現(xiàn)的順序確定索引的 -->

        <parameter default=\"\" source=\"\" type=\"\" name=\"\" alias=\"參數(shù)別名,如果沒有取name\" operator=\"<>\" dynamic=\"0\" emptyusedefault=\"true\"></parameter>

        <!-- default 參數(shù)缺省值; source 參數(shù)的取值來源 [0 常量 1 總線節(jié)點(diǎn) 2 界面組件] ;

        type 參數(shù)類型 0 無類型 1 NUMERIC 2 STRING 5 DATETIME ;name 全部使用大寫;

        operator 比較關(guān)系操作符; dynamic 0 靜態(tài)參數(shù) 1 動(dòng)態(tài)參數(shù) 需要?jiǎng)討B(tài)形成過濾條件;

        emptyusedefault 當(dāng)沒有相應(yīng)的參數(shù)時(shí)是否使用缺省值 -->

        </parameters>

        <actions> <!-- 查詢事件配置 -->

        <action className=\"\"></action>

        </actions>

        <queryreturn>

        <queryreturnfields></queryreturnfields><!-- 返回的值字段 順序返回-->

        <queryreturntextfields></queryreturntextfields><!--返回的文本字段 順序返回-->

        </queryreturn>

        <fadisplayformat> <!-- 方案的顯示結(jié)果方案 -->

        <gridset> <!-- 查詢結(jié)果格式信息 查詢表格的分組合計(jì)設(shè)置,列寬度高度等的設(shè)置-->

        </gridset>

        </fadisplayformat>

        </sqldatasource>

        使用者只需按照框架的格式要求編寫配置文件,而不需修改代碼,就可以實(shí)現(xiàn)各種各樣的查詢,從而加強(qiáng)了該程序的復(fù)用性。

        5 結(jié)束語

        可配置的程序設(shè)計(jì)得到了越來越多的軟件開發(fā)者和使用者的青睞,該技術(shù)也不斷地趨于成熟,程序設(shè)計(jì)必將沿著該技術(shù)路線發(fā)展下去。

        參考文獻(xiàn):

        [1] 石雙元.面向?qū)ο箝_發(fā)方法[M].科學(xué)出版社,2007.

        [2] 用例子說明面向?qū)ο蠛兔嫦蜻^程的區(qū)別[EB/OL].[2007-09-20].http://www.soft6.com/tech/9/90898.html.

        [3] 陳曉紅.面向過程與面向?qū)ο?-兩種程序設(shè)計(jì)方法的比較與思考[J].計(jì)算機(jī)時(shí)代,2001(11).

        [4] XML配置文件的讀取處理[EB/OL].[2007-03-22].http://www.mp3sea.net/Java/2007-3-22/XML-PeiZhiWenJianDeDouQuChuLi-29ir12506.htm.

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

        精品国产粉嫩内射白浆内射双马尾| 国产精品无码久久久久久蜜臀AV| 一区二区三区熟妇人妻18| av深夜福利在线| 国产av一区仑乱久久精品| 永久免费看黄网站性色| 亚洲a无码综合a国产av中文| 男同gay毛片免费可播放| 全免费a级毛片免费看视频| 久久久久亚洲AV成人网毛片| 亚洲蜜芽在线精品一区| 精品av一区二区在线| 国产一区二区三区最新地址| 成人影片麻豆国产影片免费观看| 亚洲人成无码区在线观看| 无码av免费一区二区三区| 婷婷成人亚洲| 区一区一日本高清视频在线观看 | 日韩久久免费精品视频| 日本女同视频一区二区三区| 免费视频无打码一区二区三区| 国产黄大片在线观看画质优化| 国产精品美女久久久久久| 可以免费在线看黄的网站| 免费大学生国产在线观看p | 性无码免费一区二区三区在线| 日韩无套内射视频6| 久久天天躁狠狠躁夜夜2020!| 无码丰满熟妇浪潮一区二区av| 国产在线视频一区二区三| 国产精品视频自拍在线| 欧美性猛交xxxx乱大交3| 久久天天躁狠狠躁夜夜爽蜜月| 精品国产乱码久久免费看| 国产av一区二区三区性入口| 国产精品成人aaaaa网站| 韩国v欧美v亚洲v日本v| 视频二区 无码中出| 97人妻中文字幕总站| 男人的天堂av网站| 欧美做受视频播放|