版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第17章 數(shù)據(jù)處理和數(shù)據(jù)服務(wù),從本章開(kāi)始學(xué)習(xí)如何在Flex應(yīng)用中操縱數(shù)據(jù)。Flex 2在先前的版本基礎(chǔ)上加強(qiáng)了客戶端的數(shù)據(jù)功能,同時(shí)在Flex的產(chǎn)品線中加入了Flex Data Service 2,使Flex應(yīng)用更方便的與服務(wù)器端進(jìn)行數(shù)據(jù)交互。本章主要介紹Flex中數(shù)據(jù)的相關(guān)特性,簡(jiǎn)要的介紹Flex數(shù)據(jù)服務(wù)。,17.1 Flex中的數(shù)據(jù)處理,在Flex應(yīng)用開(kāi)發(fā)過(guò)程中,數(shù)據(jù)是不可缺少的一部分。獲取服務(wù)器端數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行操作,成為開(kāi)
2、發(fā)應(yīng)用過(guò)程非常重要的部分。本節(jié)主要介紹Flex中數(shù)據(jù)處理的關(guān)鍵步驟,包含綁定數(shù)據(jù)(Binding Data)、存儲(chǔ)數(shù)據(jù)(Storing Data)、驗(yàn)證數(shù)據(jù)(Validating Data)和格式化數(shù)據(jù)(Formatting Data)。數(shù)據(jù)在用戶與應(yīng)用交互中是無(wú)處不在的。從用戶在應(yīng)用界面輸入數(shù)據(jù),請(qǐng)求返回信息,到服務(wù)器端返回?cái)?shù)據(jù)并在見(jiàn)面上顯示數(shù)據(jù),經(jīng)歷了數(shù)個(gè)數(shù)據(jù)處理階段,如圖所示。,17.2 綁定數(shù)據(jù),“綁定”是非常形象的概念。例
3、如把網(wǎng)上銀行帳戶和你的信用卡帳戶綁定,網(wǎng)上購(gòu)物消費(fèi)后,信用卡帳號(hào)的余額也會(huì)發(fā)生改變。而對(duì)于數(shù)據(jù),綁定是在不同的對(duì)象之間進(jìn)行數(shù)據(jù)的捆綁過(guò)程,當(dāng)其中一個(gè)對(duì)象改變了,另一個(gè)對(duì)象也發(fā)生改變。綁定為應(yīng)用的數(shù)據(jù)傳遞提供了一種便捷的方式。這里的對(duì)象通常指Flex組件的屬性,例如文本控件的text屬性,數(shù)據(jù)類組件的dataProvider屬性等。通常,一個(gè)數(shù)據(jù)綁定由三部分構(gòu)成,包括綁定源、綁定目標(biāo)和觸發(fā)事件。當(dāng)事件被觸發(fā)后,綁定發(fā)生,完成從綁定源到綁
4、定目標(biāo)的數(shù)據(jù)拷貝。Flex 2中提供了三種數(shù)據(jù)綁定的方法:“{}”語(yǔ)法、MXML的標(biāo)簽和ActionScript中的BindingUtils方法。下面分別介紹這3種方法。,17.2.1 使用“{}”進(jìn)行數(shù)據(jù)綁定,在使用“{}”進(jìn)行綁定時(shí),綁定源可以是控件屬性、ActionScript表達(dá)式、ActionScript函數(shù)。使用“{}”語(yǔ)法進(jìn)行數(shù)據(jù)綁定是最簡(jiǎn)單的數(shù)據(jù)綁定方式。使用該方法時(shí),{}將綁定的源屬性括起來(lái),作為目標(biāo)屬性的值,具
5、體形式如下。目標(biāo)屬性的值={源屬性};,17.2.2 使用標(biāo)簽進(jìn)行數(shù)據(jù)綁定,在Flex應(yīng)用中,還可以使用標(biāo)簽取代“{}”進(jìn)行數(shù)據(jù)綁定。當(dāng)使用標(biāo)簽時(shí),需要提供為標(biāo)簽提供源屬性和目標(biāo)屬性,這和使用“{}”是一致的。標(biāo)簽定義數(shù)據(jù)綁定的一般格式如下:,17.2.3 使用ActionScript定義綁定,前面使用“{}”或者標(biāo)簽定義數(shù)據(jù)綁定,都是在MXML中進(jìn)行。Flex還支持在ActionScript中使用mx.binding.uti
6、ls.BindingUtils類來(lái)定義數(shù)據(jù)綁定。該類的bindProperty()用來(lái)將屬性綁定到變量上。bindSetter()方法可以定制的方式實(shí)現(xiàn)綁定。1.使用bindProperty()方法2.bindSetter()方法,17.2.4 多個(gè)源屬性到目標(biāo)屬性的綁定,標(biāo)簽可以實(shí)現(xiàn)多個(gè)不同的源屬性到相同的目標(biāo)屬性的綁定。這是通過(guò)多個(gè)具有相同目的屬性的綁定標(biāo)簽來(lái)完成的。但也可以與“{}”組合定義使用。下面的例子使用用多個(gè)源屬性
7、的綁定,一個(gè)采用標(biāo)簽,一個(gè)采用“{}”,如圖所示。,17.2.5 源屬性到多個(gè)目標(biāo)屬性的綁定,同樣,同一個(gè)源屬性可以綁定到多個(gè)不同的目標(biāo)屬性上。在接下來(lái)的這個(gè)例子中,文本輸入控件的text屬性綁定到兩個(gè)數(shù)據(jù)模型上,這兩個(gè)數(shù)據(jù)模型有分別對(duì)應(yīng)兩個(gè)標(biāo)簽控件的text屬性,如圖所示。,17.3 存儲(chǔ)數(shù)據(jù),Flex中存儲(chǔ)數(shù)據(jù)主要依靠數(shù)據(jù)模型來(lái)實(shí)現(xiàn)??梢愿鶕?jù)應(yīng)用的需要,在數(shù)據(jù)模型中定義相應(yīng)的屬性用來(lái)保存應(yīng)用數(shù)據(jù)。數(shù)據(jù)模型廣泛的用于Flex前臺(tái)
8、界面和后臺(tái)服務(wù)器之間交互。用戶界面的數(shù)據(jù)在發(fā)送到服務(wù)器端處理之前,被保存在數(shù)據(jù)模型中。同樣,數(shù)據(jù)模型也可以保存來(lái)自服務(wù)器處理完成的數(shù)據(jù)。從MVC設(shè)計(jì)模式的角度來(lái)看,數(shù)據(jù)模型位于模型層面,起到承上啟下的作用。數(shù)據(jù)模型模型的引入,使得數(shù)據(jù)的驗(yàn)證和格式化都變得容易。同時(shí)數(shù)據(jù)模型的定義可以包含客戶端的業(yè)務(wù)邏輯,通過(guò)不同數(shù)據(jù)的組合,大大增強(qiáng)了數(shù)據(jù)的內(nèi)聚性。本節(jié)主要介紹數(shù)據(jù)模型的定義、驗(yàn)證和使用。,17.3.1 數(shù)據(jù)模型定義,數(shù)據(jù)模型是Act
9、ionScript對(duì)象。數(shù)據(jù)模型的定義有兩種方法:MXML標(biāo)簽、ActionScript函數(shù)或者ActionScript類。通常是根據(jù)實(shí)際情況,決定使用哪種方法。對(duì)于簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)使用MXML來(lái)定義,而ActionScript函數(shù)或者ActionScript類方法一般用來(lái)定義復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和客戶端業(yè)務(wù)邏輯。1.使用MXML標(biāo)簽2.使用ActionScript函數(shù)和ActionScript類,17.3.2 數(shù)據(jù)模型的驗(yàn)證,數(shù)據(jù)模型的
10、驗(yàn)證是對(duì)數(shù)據(jù)模型中保存的數(shù)據(jù)的正確性進(jìn)行檢驗(yàn)。在Flex中,數(shù)據(jù)模型的驗(yàn)證使用數(shù)據(jù)驗(yàn)證器(Data Validator)。在下面的例子中,對(duì)student數(shù)據(jù)模型中不同的數(shù)據(jù)定義了不同的驗(yàn)證器,,17.3.3 數(shù)據(jù)模型作為值對(duì)象,數(shù)據(jù)模型作為值對(duì)象,是指將數(shù)據(jù)模型中保存的數(shù)據(jù)值,以對(duì)象的方式,在控件之間傳遞。通常用在遠(yuǎn)程服務(wù)調(diào)用返回時(shí),將結(jié)果中一系列數(shù)據(jù)或者多個(gè)對(duì)象數(shù)據(jù)保存在某個(gè)數(shù)據(jù)模型中。該模型作為值對(duì)象在遠(yuǎn)程服務(wù)和數(shù)據(jù)控件之間傳
11、遞數(shù)據(jù)。這樣會(huì)使得在Flex應(yīng)用中管理和處理數(shù)據(jù)變得簡(jiǎn)單。在下面的例子中,bookDM存儲(chǔ)了遠(yuǎn)程服務(wù)操作的結(jié)果。bookInfo組件是一個(gè)自定義組件,從bookDM模型獲取數(shù)據(jù)并顯示當(dāng)前選擇圖書的詳細(xì)信息。,17.3.4 XML數(shù)據(jù)模型,XML數(shù)據(jù)模型是指數(shù)據(jù)模型中保存的是XML數(shù)據(jù),對(duì)其處理遵循XML標(biāo)準(zhǔn)。在使用數(shù)據(jù)模型時(shí),有時(shí)會(huì)涉及XML數(shù)據(jù)。為此Flex專門提供了了標(biāo)簽,用于定義XML數(shù)據(jù)模型。該數(shù)據(jù)模型在與不同之處,主要在
12、于編譯時(shí)會(huì)被編譯為ActionScript的xml.XMLNode的數(shù)據(jù)或者是XML對(duì)象。在中可以使用“{}”進(jìn)行數(shù)據(jù)綁定。使用時(shí),可以把該標(biāo)簽下的內(nèi)容看作一個(gè)XML文檔。如果將的source屬性設(shè)為E4X,就可以使用強(qiáng)大的E4X處理XML。這里需要注意的是,在當(dāng)前Flex版本不能內(nèi)的節(jié)點(diǎn)值作為綁定源。,17.4 驗(yàn)證數(shù)據(jù),數(shù)據(jù)驗(yàn)證是Flex中的數(shù)據(jù)進(jìn)行正確性驗(yàn)證。數(shù)據(jù)的正確性涉及數(shù)據(jù)的格式、類型、數(shù)值等。本節(jié)主要介紹Flex數(shù)據(jù)驗(yàn)
13、證機(jī)制,主要包括:數(shù)據(jù)驗(yàn)證器的創(chuàng)建、數(shù)據(jù)驗(yàn)證的觸發(fā)、錯(cuò)誤提示和預(yù)定義標(biāo)準(zhǔn)驗(yàn)證器。,17.4.1 使用標(biāo)準(zhǔn)數(shù)據(jù)驗(yàn)證器,在Flex中,為了更加方便的進(jìn)行數(shù)據(jù)驗(yàn)證。對(duì)于常用數(shù)據(jù),提供了的預(yù)定義數(shù)據(jù)驗(yàn)證器,主要包括以下幾類。CurrencyValidator:貨幣數(shù)據(jù)驗(yàn)證。CreditCardValidator:信用卡數(shù)據(jù)驗(yàn)證。DateValidator:日期數(shù)據(jù)驗(yàn)證。NumberValidator :數(shù)字驗(yàn)證。PhoneNumbe
14、rValidator:電話號(hào)碼驗(yàn)證。EmailValidator:郵箱地址驗(yàn)證。ZipCodeValidator :郵政區(qū)號(hào)驗(yàn)證。,17.4.2 創(chuàng)建數(shù)據(jù)驗(yàn)證器,Flex中數(shù)據(jù)驗(yàn)證是由驗(yàn)證器(Validator)來(lái)執(zhí)行的。驗(yàn)證器的創(chuàng)建使用標(biāo)簽或者指定驗(yàn)證器的標(biāo)簽,還可以使用驗(yàn)證器對(duì)應(yīng)的類在ActionScript中創(chuàng)建。下面以為介紹創(chuàng)建過(guò)程。1.使用MXML標(biāo)簽2.在ActionScript中創(chuàng)建,17.4.3 觸發(fā)驗(yàn)證器,
15、在Flex應(yīng)用中,數(shù)據(jù)驗(yàn)證是可以被在事件發(fā)生時(shí)觸發(fā)。這樣,用戶可以在需要驗(yàn)證時(shí),隨時(shí)觸發(fā)驗(yàn)證。最常用的觸發(fā)方式是使用按鈕。當(dāng)單擊某個(gè)按鈕后,對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。在驗(yàn)證器定義過(guò)程中,可以通過(guò)以下兩個(gè)屬性定義驗(yàn)證的觸發(fā):trigger:表示觸發(fā)驗(yàn)證的對(duì)象(通常是按鈕)。例如:trigger="{button}";。triggerEvent:表示對(duì)象觸發(fā)驗(yàn)證事件類型(如鼠標(biāo)單擊,鼠標(biāo)滑入滑出等)。例如:triggerEv
16、ent="click"。,17.4.4 驗(yàn)證錯(cuò)誤提示,驗(yàn)證錯(cuò)誤提示是當(dāng)數(shù)據(jù)驗(yàn)證發(fā)生錯(cuò)誤時(shí),用戶界面上顯示的與錯(cuò)誤有關(guān)的信息。如前面示例中,日期格式不正確的顯示的錯(cuò)誤提示。驗(yàn)證控件在默認(rèn)情況下已經(jīng)顯示默認(rèn)的提示錯(cuò)誤,但提示的語(yǔ)言使用的都是英文。為了從更加貼合應(yīng)用的實(shí)際,可以使用不同的屬性定義提示信息。在下面的例子中,對(duì)電話號(hào)碼的驗(yàn)證器,定義了不同的提示信息。用戶單擊驗(yàn)證按鈕,觸發(fā)對(duì)輸入電話號(hào)碼的驗(yàn)證。在不同錯(cuò)誤下,
17、驗(yàn)證提示信息如圖所示。,17.5 格式化數(shù)據(jù),格式化數(shù)據(jù)是對(duì)數(shù)據(jù)進(jìn)行的處理,按照某種約定的格式以統(tǒng)一的形式輸出。在Flex中數(shù)據(jù)的格式化是由格式器(formatter)完成的。格式器是一個(gè)可配置的對(duì)象,用來(lái)將原始數(shù)據(jù)格式化為定制數(shù)據(jù)。通常數(shù)據(jù)的格式是從顯示的角度對(duì)綁定到組件上的數(shù)據(jù)進(jìn)行的,主要是減少人工處理的工作量,提高數(shù)據(jù)操作的效率。本節(jié)主要講述如何使用數(shù)據(jù)格式器,包括格式器的創(chuàng)建、觸發(fā)、錯(cuò)誤的處理和常用的格式器。,17.5.1
18、使用標(biāo)準(zhǔn)的格式器,在Flex中,為了更加方便的進(jìn)行數(shù)據(jù)格式化。對(duì)于常用數(shù)據(jù),提供了的標(biāo)準(zhǔn)的數(shù)據(jù)格式器,主要包括以下幾類。CurrencyFormatter:貨幣數(shù)據(jù)格式化。DateFormatter:日期數(shù)據(jù)格式化。NumberFormatter :數(shù)字格式化。PhoneFormatter:電話號(hào)碼格式化。ZipCodeFormatter :郵政區(qū)號(hào)格式化。在Flex應(yīng)用中如果需要對(duì)上述數(shù)據(jù)進(jìn)行格式化,只需使用相應(yīng)的MXML
19、標(biāo)簽或者ActionScript類即可。每類格式器的使用方法類似,這里只介紹通用格式化器的使用方法。,17.5.2 創(chuàng)建數(shù)據(jù)格式器,數(shù)據(jù)格式器將數(shù)據(jù)格式為字符串,實(shí)現(xiàn)原始數(shù)據(jù)到字符串的單向轉(zhuǎn)換。最典型的情況是在文本域中顯示數(shù)據(jù)之前觸發(fā)數(shù)據(jù)的格式化。創(chuàng)建格式器,使用的MXML標(biāo)簽是或者指定格式化器的標(biāo)簽。主要涉及如下的屬性和方法:formatString:定義數(shù)據(jù)的格式屬性。它是格式化的基礎(chǔ)。例如:formatString=&quo
20、t;YYYY-MM-DD",是將輸入的日期格式為年-月-日這樣的格式。format():格式化方法。該方法輸入是需要格式化的數(shù)據(jù),輸出是格式字符串。當(dāng)格式化發(fā)生錯(cuò)誤時(shí),返回空值,同時(shí)錯(cuò)誤信息會(huì)寫入格式器的error屬性中。創(chuàng)建格式器的一般過(guò)程如下:(1)在MXML代碼中聲明一個(gè)格式器,給定合適的格式屬性。(2)使用{}對(duì)綁定數(shù)據(jù)調(diào)用格式器的format()方法,將要格式化的數(shù)據(jù)作為format()方法的參數(shù)。,17.5
21、.3 觸發(fā)格式器,格式器的觸發(fā)需要調(diào)用格式器的format()方法。在Flex應(yīng)用中可以在任何地方調(diào)用format()方法。通常格式器的觸發(fā)是作為事件的響應(yīng),如按鈕的單擊事件。下面是一個(gè)通過(guò)按鈕事件觸發(fā)格式器的例子。創(chuàng)建了一個(gè)日期格式器。當(dāng)用戶單擊格式化按鈕時(shí),作為鼠標(biāo)單擊事件的響應(yīng),格式器觸發(fā),對(duì)輸入的日期格式化并將格式數(shù)據(jù)顯示到TextInput控件,如圖所示。,17.5.4 錯(cuò)誤處理,在格式化數(shù)據(jù)的過(guò)程可能會(huì)發(fā)生錯(cuò)誤,錯(cuò)誤處
22、理是用來(lái)將錯(cuò)誤信息返回給調(diào)用者。錯(cuò)誤處理涉及到格式器的error屬性。當(dāng)發(fā)生格式錯(cuò)誤時(shí),錯(cuò)誤描述信息寫入格式器的error屬性當(dāng)中。通常,當(dāng)發(fā)生格式錯(cuò)誤時(shí)format()方法會(huì)返回空字符串,同時(shí)錯(cuò)誤信息也會(huì)被記錄。所以當(dāng)檢測(cè)到返回字符串為空時(shí),可以訪問(wèn)error屬性獲得錯(cuò)誤原因。另外,用戶也可以使用ActionScript,編寫自定義的錯(cuò)誤處理函數(shù)來(lái)處理格式化錯(cuò)誤。下面的例子中定義了一個(gè)簡(jiǎn)單的錯(cuò)誤處理函數(shù)。,17.6 Flex數(shù)據(jù)
23、服務(wù),Flex 2系列產(chǎn)品對(duì)開(kāi)發(fā)者創(chuàng)建和管理面向服務(wù)的豐富因特網(wǎng)應(yīng)用程序(RIAs)的方式做了幾個(gè)重要改進(jìn)。其中數(shù)據(jù)服務(wù)從原有的功能中劃分出來(lái),可以作為獨(dú)立的服務(wù)安裝。特別是數(shù)據(jù)服務(wù)中的新的性能,使得與服務(wù)器端的交互比以前任何版本都顯得方便。本節(jié)將簡(jiǎn)要介紹Flex數(shù)據(jù)服務(wù),詳細(xì)的內(nèi)容在后面的章節(jié)重點(diǎn)介紹。,17.6.1 數(shù)據(jù)服務(wù)概述,在Flex 2中數(shù)據(jù)服務(wù)指的是Flex Data Services 2。它與早期的Flex數(shù)據(jù)管理相比
24、,向前跨了重大的一步,它提供一組基于信息的服務(wù),具有支持同步數(shù)據(jù)的能力。這顯著的提升了開(kāi)發(fā)者的生產(chǎn)率,不用花時(shí)間去編寫、調(diào)試和維護(hù),往往容易出錯(cuò),并要求在客戶端、程序和數(shù)據(jù)庫(kù)不同層間移動(dòng)數(shù)據(jù)的代碼上。Flex數(shù)據(jù)服務(wù)具有以下特點(diǎn)。Flex數(shù)據(jù)服務(wù)提供一系列強(qiáng)大的服務(wù)器端數(shù)據(jù)管理功能,使開(kāi)發(fā)人員能夠快速數(shù)據(jù)密集型Flex應(yīng)用程序。Flex數(shù)據(jù)服務(wù)部署為標(biāo)準(zhǔn)Web J2EE 應(yīng)用程序,通過(guò)為現(xiàn)有的服務(wù)器端數(shù)據(jù)和業(yè)務(wù)邏輯提供高性能數(shù)據(jù)連
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)服務(wù)平臺(tái)的服務(wù)發(fā)布和數(shù)據(jù)訪問(wèn)研究.pdf
- 基于kinect的數(shù)據(jù)采集和數(shù)據(jù)處理
- 實(shí)驗(yàn)數(shù)據(jù)誤差分析和數(shù)據(jù)處理
- 實(shí)驗(yàn)探究和數(shù)據(jù)處理題
- 實(shí)驗(yàn)數(shù)據(jù)誤差分析和數(shù)據(jù)處理(2)
- 人工智能平臺(tái)應(yīng)用教案項(xiàng)目5:智能數(shù)據(jù)服務(wù)平臺(tái)數(shù)據(jù)處理
- 人工智能平臺(tái)應(yīng)用教案項(xiàng)目5:智能數(shù)據(jù)服務(wù)平臺(tái)數(shù)據(jù)處理
- 銀行業(yè)數(shù)據(jù)服務(wù)平臺(tái)建設(shè)和數(shù)據(jù)分析應(yīng)用.pdf
- J-TEXT托卡馬克的數(shù)據(jù)采集和數(shù)據(jù)服務(wù)系統(tǒng).pdf
- 大數(shù)據(jù)服務(wù)合同
- 數(shù)據(jù)處理服務(wù)協(xié)議書
- 大數(shù)據(jù)服務(wù)合同
- 數(shù)據(jù)處理
- 淺議道路橫斷面測(cè)量和數(shù)據(jù)處理方法
- [學(xué)習(xí)]定量分析的誤差和數(shù)據(jù)處理
- 基于激光測(cè)量系統(tǒng)的數(shù)據(jù)測(cè)量和數(shù)據(jù)處理技術(shù)研究.pdf
- 胃電圖信號(hào)采集和數(shù)據(jù)處理的研究.pdf
- 軟土地基的巖土工程勘察和數(shù)據(jù)處理
- 場(chǎng)面監(jiān)視雷達(dá)顯示與控制軟件和數(shù)據(jù)處理.pdf
- 大數(shù)據(jù)處理分析研究服務(wù)
評(píng)論
0/150
提交評(píng)論