




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向?qū)ο蟮乃枷?1,面向?qū)ο蟪绦蛟O(shè)計的基本概念 類和對象 屬性、方法與事件 封裝 繼承 多態(tài)性,類和對象,在C#中,class為類的關(guān)鍵字。 把屬于類的對象稱為類的實例,可以把類看成是對象的模板,把對象看成是類的實例。,1、類的聲明 【格式】: 類修飾符 class 類名:基類類名 成員定義列表; 【功能】:定義一個由“類名”指定的類。,3,1)支持的類修飾符,4,2)如果缺省類修飾符,默認為private。 3)“基類類名”指定派生該類的基類,如果該類沒有從任何類繼承,則不需要該選項。 4)“成員定義列表”類成員有兩部分組成:一個是新聲明的類成員;另一個則是直接從它的基類繼承而來的成員。 類成員聲明主要包括:常數(shù)、字段、方法、屬性、事件、索引器、運算符、構(gòu)造函數(shù)、析構(gòu)函數(shù)等。 類成員聲明中的訪問修飾符:public、private、protected、internal中。默認訪問修飾符為private。,5,字段:字段是與類相關(guān)的變量,相當于C+中的變量。 常量:用來定義與類相關(guān)的常量值。 事件:是類的成員,它可以讓對象通知調(diào)用者某些特定的行為發(fā)生時間。 方法:完成類中各種計算或功能的操作,類似函數(shù)。 屬性:定義類的特征,并對他們提供讀、寫操作。,類成員的組成:,6,索引器:允許編程人員在訪問數(shù)組時,通過索引器訪問類的多個實例。又稱下標指示器。 運算符:定義類的實例能使用的運算符。 構(gòu)造函數(shù):在類被實例化時首先執(zhí)行的函數(shù),主要完成對象初始化操作。 析構(gòu)函數(shù):在對象被銷毀之前最后執(zhí)行的函數(shù),主要是完成對象結(jié)束時的收尾操作。,7,例:成員常量的聲明 關(guān)鍵字const用于聲明常量,后跟數(shù)據(jù)類型的聲明。類的常量可以加上new、public、protected、internal或private修飾。 Class A public const double A=1.0; public const double X=1.0,Y=2.0,Z=3.0; ,8,2、類的靜態(tài)成員和實例成員 靜態(tài)成員:有static,屬于類所有,只能通過類名來訪問。 實例成員:沒有static,屬于類的實例所有,又稱實例成員,只能通過類的實例對象來訪問。,9,using System; class Example1 static public int a;/靜態(tài)成員 public int b; /實例成員 void Meth1() /實例方法 a = 10; /實例方法中可以訪問本類的靜態(tài)成員 b = 20; /實例方法中可以訪問本類的實例成員 static void Meth2() a = 30; /靜態(tài)方法能夠訪問本類的靜態(tài)成員 /b=40; /靜態(tài)方法不能訪問本類的實例成員 ,10,【格式】: 類名 實例名=new 類名(參數(shù)); 【功能】:生成一個由“類名”指定的類的名為“實例名”的實例,如果有參數(shù)則將參數(shù)傳遞給構(gòu)造函數(shù)。 【說明】: 1)、new關(guān)鍵字實際上是調(diào)用構(gòu)造函數(shù)來完成實例的初始化工作。,3、對象的聲明,對象相當于現(xiàn)實世界中的實體 在指定一個類后,往往把屬于這個類的對象稱為類的實例,可以把類看成是對象的模板,把對象看成是類的實例。 比如:人和張三;int和10,11,2)、創(chuàng)建實例也可以分為兩步:先定義實例變量,然后用new關(guān)鍵字創(chuàng)建實例。 類名 實例名; /定義類的實例變量 實例名=new 類名(參數(shù));/創(chuàng)建類的實例。 如:Student Stu1=new Student(); 等價于:Student Stu1; Stu1=new Student();,類的構(gòu)造函數(shù)和析構(gòu)函數(shù),12,C#中有兩個特殊的函數(shù):構(gòu)造函數(shù)、析構(gòu)函數(shù)。 構(gòu)造函數(shù):是在創(chuàng)建類的實例(也就是對象)時首先執(zhí)行的函數(shù)。 析構(gòu)函數(shù):是當實例(對象)從內(nèi)存中銷毀前最后執(zhí)行的函數(shù)。 這兩個函數(shù)的執(zhí)行是無條件的,系統(tǒng)會自動在創(chuàng)建對象時調(diào)用構(gòu)造函數(shù),在銷毀對象時調(diào)用析構(gòu)函數(shù),而不需要程序員通過代碼調(diào)試。,13,構(gòu)造函數(shù) 作用:為對象分配存儲空間,完成初始化操作(給類的成員變量賦值等)。 構(gòu)造函數(shù)有如下規(guī)則: 1)構(gòu)造函數(shù)的函數(shù)名和類的名稱一樣。 2)當某個類沒有構(gòu)造函數(shù)時,系統(tǒng)將自動為其創(chuàng)建默認構(gòu)造函數(shù)。 example1() ;,3)構(gòu)造函數(shù)的訪問修飾符總是public。如果是private,則表示這個類不能被實例化,這通常用于只含有靜態(tài)成員的類中。 4)構(gòu)造函數(shù)不用聲明返回類型。 5)構(gòu)造函數(shù)可以帶參數(shù)也可以不帶參數(shù)。,析構(gòu)函數(shù),析構(gòu)函數(shù)用于析構(gòu)類的實例。 不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。只能對類使用析構(gòu)函數(shù)。 一個類只能有一個析構(gòu)函數(shù)。 無法繼承或重載析構(gòu)函數(shù)。 無法調(diào)用析構(gòu)函數(shù)。它們是被自動調(diào)用的。 析構(gòu)函數(shù)既沒有修飾符,也沒有參數(shù)。,聲明方法,15,訪問修飾符(可選),默認情況下為 private,訪問修飾符 返回類型 (參數(shù)列表) / 方法主體 ,如果不需要返回任何值,方法需定義為void 數(shù)據(jù)類型,方法頭不是一條語句,其后不能跟分號“;”,“形式參數(shù)說明列表”是一個由逗號分隔開的列表,16,方法的調(diào)用: 有三種格式: 【格式1】: 方法名(實際參數(shù)類表) 【格式2】: 對象名.方法名(實際參數(shù)類表) 【格式3】: 類名.方法名(實際參數(shù)類表) 格式三只能調(diào)用非本類的另一個類的靜態(tài)方法。,17,【說明】: 1)調(diào)用方法時,如果方法有形式參數(shù),在調(diào)用時應(yīng)在“()”中使用實際參數(shù)。 2)沒有返回值的方法作為一條語句; 有返回值的方法方法的調(diào)用相當于一個同類型的數(shù)據(jù),可以作為表達式或表達式的一部分參與運算。,18,靜態(tài)方法和非靜態(tài)方法: 定義靜態(tài)時用static修飾 不能用virtual、abstract或override修飾符。 非靜態(tài)方法可以訪問類中包括靜態(tài)成員在內(nèi)的所有成員,而靜態(tài)方法只能訪問類中的靜態(tài)成員。,19,方法重載與覆蓋(同類重載,繼承覆蓋) 1)重載 重載是面向?qū)ο蟮囊粋€重要特征,通過重載可以使多個具有相同功能但是參數(shù)不同的方法共享同一個方法名。 方法重載的實現(xiàn): 在一個類中兩次或多次定義同名的方法(包括從基類繼承而來的方法),但每個方法的參數(shù)類型或個數(shù)不同; 用戶調(diào)用方法時,系統(tǒng)能夠自動識別應(yīng)調(diào)用的方法。,20,2)覆蓋(new或者virtual+override) 在一個有繼承關(guān)系的類層次結(jié)構(gòu)中,類中的方法由兩部分組成,一個是類體中聲明的方法,另一個則是直接從它的基類繼承而來的方法。 但派生類很少會一成不變的繼承基類中所有的方法,如果需要對基類的方法作出修改,就要在派生類中對基類方法進行覆蓋。(編譯時實現(xiàn)多態(tài)) 有兩種覆蓋方式: 一種是用關(guān)鍵字new修飾派生類中與基類同名的方法,這樣基類中的同名方法會被隱藏; 另一種更為靈活和有效的途徑是首先將基類的方法用關(guān)鍵字virtual修飾為虛擬方法,再由派生類用關(guān)鍵字override修飾同名的方法,表明是對基類的虛擬方法重載。(運行時多態(tài),動態(tài)綁定),21,虛方法使用注意事項: 1)不能將虛方法聲明為靜態(tài)的,因為多態(tài)性是針對對象的,不是針對類的。 2)不能將虛方法聲明為私有的,因為私有方法不能被派生類覆蓋。 3)覆蓋方法必須與它相關(guān)的虛方法匹配,也就是說,它們的方法簽名(方法名稱、參數(shù)個數(shù)、參數(shù)類型)、返回類型以及訪問屬性都應(yīng)該完全一致。,運算符重載:,22,系統(tǒng)對大部分運算符都給出了常規(guī)定義 但可以根據(jù)需要給這些運算符賦予一個新的含義,這就是運算符的重載。,23,【格式】: 返回類型值 operator 運算符(運算對象列表) 重載的實現(xiàn)部分; 【說明】: 1)、返回類型可以是任意合法的C#類型修飾符,或自定義類型,在方法實現(xiàn)部分通過return語句返回該數(shù)據(jù)類型的數(shù)據(jù)。 2)、在C#中,可以重載的運算符主要有:+,-,!,+,-,true,false,*,/,%,&,|,=,!=,=。 3)、不能重載的運算符有:=,&,|,?:,new,typeof,sizeof,is。,24,屬性 屬性是對現(xiàn)實世界中實體特征的抽象,它提供了一種對類或?qū)ο筇卣鬟M行訪問的機制。 如:一個窗口的標題、一個控件的尺寸。 與域相比,屬性具有良好的封裝性。屬性不允許直接操作類的數(shù)據(jù)內(nèi)容,而是通過訪問器進行訪問(使用get和set對屬性的值進行讀寫)。,25,【格式】: 屬性修飾符 類型說明符 屬性名 訪問聲明 【說明】: 1)屬性修飾符有new, public, protected, internal, private, static, virtual, override和abstract 9種。 2)訪問聲明用來聲明屬性訪問器。 set給屬性賦值 get獲取屬性值 如果只有g(shù)et訪問器,表示屬性只讀;如果只有set訪問器,表示只寫屬性;兩個都有,表示讀寫屬性。 3)get訪問函數(shù)是一個不帶參數(shù)的方法,它用于向外部返回屬性成員的值。通常訪問函數(shù)的語句或語句塊主要由return或throw語句返回某個變量成員的值。,26,set訪問函數(shù) Set訪問函數(shù)是一個帶有簡單值類型參數(shù)的方法,用于處理類外部的寫入值。 set函數(shù)帶有一個特殊的關(guān)鍵字value,在set函數(shù)中通過value將外部的輸入傳遞進來,然后賦值給類中的某個變量成員。,C#封裝:,封裝的概念:可以把程序按某種規(guī)則分成很多“塊“,塊與塊之間可能會有聯(lián)系,每個塊都有一個可變部分和一個穩(wěn)定的部分。我們需要把可變的部分和穩(wěn)定的部分分離出來,將穩(wěn)定的部分暴露給其他塊,而將可變的部分隱藏起來,以便于隨時可以讓它修改。這項工作就是封裝。 例如:在用類實現(xiàn)某個邏輯的時候,類就是以上所說的塊,實現(xiàn)功能的具體代碼就是可變的部分,而public的方法或者屬性則是穩(wěn)定的部分,封裝的意義,封裝的意義在于保護或者防止代碼(數(shù)據(jù))被我們無意中破壞。在面向?qū)ο蟪绦蛟O(shè)計中數(shù)據(jù) 被看作是一個中心的原素并且和使用它的函數(shù)結(jié)合的很密切,從而保護它不被其它的函數(shù)意外的修改。 封裝提供了一個有效的途徑來保護數(shù)據(jù)不被意外的破壞。相比我們將數(shù)據(jù)(用域來實現(xiàn))在程 序中定義為公用的(public)我們將它們定義為私有的(private)在很多方面會更好。,C# 繼承,繼承是面向?qū)ο蟪绦蛟O(shè)計中最重要的概念之一。繼承允許我們根據(jù)一個類來定義另一個類來定義一個類,這使得創(chuàng)建和維護應(yīng)用程序變得更容易。同時也有利于重用代碼和節(jié)省開發(fā)時間。 當創(chuàng)建一個類時,程序員不需要完全重新編寫新的數(shù)據(jù)成員和成員函數(shù),只需要設(shè)計一個新的類,繼承了已有的類的成員即可。這個已有的類被稱為的基類,這個新的類被稱為派生類。,例如: public class A public A() public class B : A public B() ,C#多態(tài),同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。 C#多態(tài)性分為兩種,一種是編譯時的多態(tài)性,一種是運行時的多態(tài)性。 編譯時的多態(tài)性:編譯時的多態(tài)性是通過重載來實現(xiàn)的。對于非虛的成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型等信息決定實現(xiàn)何種操作。 運行時的多態(tài)性:運行時的多態(tài)性就是指直到系統(tǒng)運行時,才根據(jù)實際情況決定實現(xiàn)何種操作。C#中運行時的多態(tài)性是通過覆寫虛成員實現(xiàn)。,C#多態(tài)性之重載和覆寫的區(qū)別:,重載 public int Calculate(int x, int y) public double Calculate(double x, double y) 特點(兩必須一可以) 方法名必須相同 參數(shù)列表必須不相同 返回值類型可以不相同,覆寫 子類中為滿足自己的需要來重復定義某個方法的不同實現(xiàn)。通過使用override關(guān)鍵字來實現(xiàn)覆寫。只有虛方法和抽象方法才能被覆寫。 要求(三相同) (1)相同的方法名稱 (2)相同的參數(shù)列表 (3)相同的返回值類型,C#多態(tài)性之虛方法和抽象方法:,虛方法: 聲明使用virtual關(guān)鍵字。 調(diào)用虛方法,運行時將確定調(diào)用對象是什么類的實例,并調(diào)用適當?shù)母矊懙姆椒ā?虛方法可以有實現(xiàn)體。 抽象方法: 必須被派生類覆寫的方法。 可以看成是沒有實現(xiàn)體的虛方法。 如果類中包含抽象方法,那么類就必須定義為抽象類,不論是否還包含其他一般方法。,抽象類和接口,抽象類 (1) 抽象方法只作聲明,而不包含實現(xiàn),可以看成是沒有實現(xiàn)體的虛方法 (2) 抽象類不能被實例化 (3) 抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法,就一定要把這個類聲明為抽象類 (4) 具體派生類必須覆蓋基類的抽象方法 (5) 抽象派生類可以覆蓋基類的抽象方法,也可以不覆蓋。如果不覆蓋,則其具體派生類必須覆蓋它們。,接 口 (1) 接口不能被實例化 (2) 接口只能包含方法聲明 (3) 接口的成員包括方法、屬性、索引器、事件 (4) 接口中不能包含常量、字段(域)、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員。 (5) 接口中的所有成員默認為public,因此接口中不能有private修飾符 (6) 派生類必須實現(xiàn)接口的所有成員 (7) 一個類可以直接實現(xiàn)多個接口,接口之間用逗號隔開 (8) 一個接口可以有多個父接口,實現(xiàn)該接口的類必須實現(xiàn)所有父接口中的所有成員,抽象類和接口的異同點,相同點: (1) 都可以被繼承 (2) 都不能被實例化 (3) 都可以包含方法聲明 (4) 派生類必須實現(xiàn)未實現(xiàn)的方法 區(qū) 別: (1) 抽象基類可以定義字段、屬性、方法實現(xiàn)。接口只能定義屬性、索引器、事件、和方法聲明,不能包含字段。 (2) 抽象類是一個不完整的類,需要進一步細化,而接口是一個行為規(guī)范。微軟的自定義接口總是后帶able字段,證明其是表述一類“我能做?!?(3) 接口可以被多重實現(xiàn),抽象類只能被單一繼承 (4) 抽象類更多的是定義在一系列緊密相關(guān)的類間,而接口大多數(shù)是關(guān)系疏松但都實現(xiàn)某一功能的類中 (5) 抽象類是從一系列相關(guān)對象中抽象出來的概念, 因此反映的是事物的內(nèi)部共性;接口是為了滿足外部調(diào)用而定義的一個功能約定, 因此反映的是事物的外部特性 (6) 接口基本上不具備繼承的任何具體特點,它僅僅承諾了能夠調(diào)用的方法 (7) 接口可以用于支持回調(diào),而繼承并不具備這個特點 (8) 抽象類實現(xiàn)的具體方法默認為虛的,但實現(xiàn)接口的類中的接口方法卻默認為非虛的,當然您也可以聲明為虛的 (9) 如果抽象類實現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現(xiàn),而在抽象類的子類中實現(xiàn)接口中方法,C/S 和 B/S 架構(gòu),C/S架構(gòu) C/S架構(gòu)是一種比較早的軟件架構(gòu),主要應(yīng)用于局域網(wǎng)內(nèi)。在這之前經(jīng)歷了集中計算模式,隨著計算機網(wǎng)絡(luò)的進步與發(fā)展,尤其是可視化工具的應(yīng)用,出現(xiàn)過兩層C/S和三層C/S架構(gòu),不過一直很流行也比較經(jīng)典的是我們所要研究的兩層C/S架構(gòu)。 C/S架構(gòu)軟件(即客戶機/服務(wù)器模式)分為客戶機和服務(wù)器兩層:第一層是在客戶機系統(tǒng)上結(jié)合了表示與業(yè)務(wù)邏輯,第二層是通過網(wǎng)絡(luò)結(jié)合了數(shù)據(jù)庫服務(wù)器。簡單的說就是第一層是用戶表示層,第二層是數(shù)據(jù)庫層。 客戶端和服務(wù)器直接相連,這兩個組成部分都承擔著重要的角色,第一層的客戶機并不是只有輸入輸出,運算等能力,它可以處理一些計算,數(shù)據(jù)存儲等方面的業(yè)務(wù)邏輯事務(wù);第二層的服務(wù)器主要承擔事務(wù)邏輯的處理,本來事務(wù)很重,但是由于客戶機可以分擔一些邏輯事務(wù),所以減輕了服務(wù)器的負擔,使得網(wǎng)絡(luò)流量增多。 想要使用C/S架構(gòu)的軟件需要下載一個客戶端,安裝后就可以使用。,C/S架構(gòu)的優(yōu)點 C/S架構(gòu)既然能在計算機歷史的長河中長盛不衰就必然有其閃光之處。下面將從各個角度分析C/S架構(gòu)的優(yōu)點。 1)客戶端和服務(wù)器直接相連 a)點對點的模式使得更安全。 b)可以直接操作本地文本,減少獲取文本的時間和精力。 c)由于直接相連,減少了通信流量,這對于客戶來說可以節(jié)約一大筆費用。 d)直接相連,中間沒有什么阻隔或岔路,所以響應(yīng)速度快。當通信量少的時候沒什么感覺,但是如果通信量龐大,就不會出現(xiàn)擁堵的現(xiàn)象。 2)客戶端可以處理一些邏輯事務(wù) a)充分利用兩者的硬件設(shè)施,避免資源的浪費。 b)為服務(wù)器分擔一些邏輯事務(wù),可以進行數(shù)據(jù)處理和數(shù)據(jù)存儲??梢蕴幚韽碗s的事務(wù)流程。 c)客戶端有一套完整應(yīng)用程序,在出錯提示、在線幫助等方面都有強大的功能,并且可以在子程序間自由切換。 3) 客戶端操作界面 a)可以提高客戶的視覺體驗,滿足客戶需求。 b)客戶端操作界面可以隨意排列,充分滿足客戶的需要,展現(xiàn)特點與個性。,C/S架構(gòu)的缺點 經(jīng)過長期的時間檢驗,人們也發(fā)現(xiàn)了C/S存在的不足,下面將前人的觀點整理總結(jié)一下。 1)客戶端 a)只能處理一些功能單一的多系統(tǒng)。 b)C/S架構(gòu)適用于局域網(wǎng),對網(wǎng)速的要求比較高。 c)由于需要安裝客戶端,安裝部署困難,所以不易擴展。 d)若客戶端使用的系統(tǒng)不同,就要針對這些系統(tǒng)分別編寫程序。 e)客戶端界面缺乏通用性,且當業(yè)務(wù)更改時就需要更改界面,重新編寫。 f)客戶端需要專門的客戶端程序,比較麻煩,針對點多面廣且不具備網(wǎng)絡(luò)條件的用戶群體,不能夠?qū)崿F(xiàn)快速部署安裝和配置。 2)服務(wù)器 a)用戶數(shù)增多會出現(xiàn)通信擁堵,服務(wù)器響應(yīng)速度慢等情況。 b)當服務(wù)器難當大任時,只能將其廢棄,使用更強大的服務(wù)器。 c)當客戶端用戶增多時,服務(wù)器難以承擔重負,是名副其實的“胖”客戶端。 d)用戶是通過ODBC連接到數(shù)據(jù)庫的,且每個連接到數(shù)據(jù)庫的用戶都會保持一個ODBC連接,會一直占用中央服務(wù)器的資源,對服務(wù)器的要求很高。 3)用戶 a)沒有安裝客戶端的外部用戶不能訪問。 b)只有安裝了客戶端才能訪問服務(wù)器,所以用戶不能隨時隨地的訪問。 c)用戶是通過ODBC連接到數(shù)據(jù)庫的,所以用戶數(shù)受限,不易擴張。 d)由于針對小范圍的客戶,所以不能實現(xiàn)真正大范圍的信息共享,信息傳達和發(fā)布。 4)開發(fā)成本 a)需要聘用高素質(zhì)的人員,對其培訓,費用高。 b)初次開發(fā)就需要配備好客戶端,服務(wù)器,需要有專業(yè)水準的技術(shù)人員,所以成本高。 5)后期成本 a)系統(tǒng)升級維護麻煩,需要更改大量程序,投入大量精力和金錢。 b)業(yè)務(wù)擴展或變更時,需要更改程序,客戶端的界面也需要重新更改。 c)初次投入成本后不能一勞永逸,后期需要很多成本,比如服務(wù)器的更換,客戶端的更變等。,B/S架構(gòu) 隨著Internet和WWW的流行,以往的主機/終端和C/S都無法滿足當前的全球網(wǎng)絡(luò)開放、互連、信息隨處可見和信息共享的新要求,于是就出現(xiàn)了B/S型模式,即瀏覽器/服務(wù)器結(jié)構(gòu)。它是C/S架構(gòu)的一種改進,可以說屬于三層C/S架構(gòu)。主要是利用了不斷成熟的WWW瀏覽器技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。 第一層是瀏覽器,即客戶端,只有簡單的輸入輸出功能,處理極少部分的事務(wù)邏輯。由于客戶不需要安裝客戶端,只要有瀏覽器就能上網(wǎng)瀏覽,所以它面向的是大范圍的用戶,所以界面設(shè)計得比較簡單,通用。 第二層是WEB服務(wù)器,扮演著信息傳送的角色。當用戶想要訪問數(shù)據(jù)庫時,就會首先向WEB服務(wù)器發(fā)送請求,WEB服務(wù)器統(tǒng)一請求后會向數(shù)據(jù)庫服務(wù)器發(fā)送訪問數(shù)據(jù)庫的請求,這個請求是以SQL語句實現(xiàn)的。 第三層是數(shù)據(jù)庫服務(wù)器,他扮演著重要的角色,因為它存放著大量的數(shù)據(jù)。當數(shù)據(jù)庫服務(wù)器收到了WEB服務(wù)器的請求后,會對SQL語句進行處理,并將返回的結(jié)果發(fā)送給WEB服務(wù)器,接下來,WEB服務(wù)器將收到的數(shù)據(jù)結(jié)果轉(zhuǎn)換為HTML文本形式發(fā)送給瀏覽器,也就是我們打開瀏覽器看到的界面。,B/S架構(gòu)和C/S架構(gòu)不同,瀏覽器不是直接和數(shù)據(jù)庫服務(wù)器相連,所以是多對多的結(jié)構(gòu)。因此在此結(jié)構(gòu)下,很適合在廣域網(wǎng)里實現(xiàn)巨大的互聯(lián)網(wǎng),甚至是全球網(wǎng)。有著很強大的信息共享性。 在B/S出現(xiàn)的早期,瀏覽器只能顯示靜態(tài)頁面,得不到良好的交互,不能進行大量的邏輯處理,當時瀏覽器主要用來實現(xiàn)信息的發(fā)布,是一種單向的應(yīng)用。后來出現(xiàn)了動態(tài)網(wǎng)頁,這里的動態(tài)有三個方面,一是交互,二是動畫,三是數(shù)據(jù)。這樣,瀏覽器的交互性能得到極大提高。頁面也越來越豐富多彩。瀏覽器也能處理部分邏輯事務(wù),所以瀏覽器成為了客戶端,但由于處理的內(nèi)容較少,所以叫“瘦”客戶端。,B/S架構(gòu)的優(yōu)點 B/S架構(gòu)是應(yīng)WEB技術(shù)的飛速發(fā)展而從傳統(tǒng)的C/S架構(gòu)發(fā)展而來,并且一舉成為當今主要的網(wǎng)絡(luò)架構(gòu)。目前主要的網(wǎng)站,尤其是商務(wù)網(wǎng)站都是基于B/S架構(gòu)建立的。那么我們就來細數(shù)一下B/S架構(gòu)的優(yōu)點,它到底為什么受到大家的青睞。 1)瀏覽器 a)能面對廣大的用戶實現(xiàn)信息傳播共享。 b)瀏覽器只處理一些簡單的邏輯事務(wù),負擔小。 c)頁面的更新能實現(xiàn)同步,所有用戶都能看到。 d)界面設(shè)計開發(fā)簡單,對程序員的要求較低,不需要大量的培訓。 e)業(yè)務(wù)擴展方便,只需要增加幾個業(yè)務(wù)擴展的頁面即可,不需要大量的編程。 f)界面不需要太多的編寫,比較通用,更改界面也比較簡單,所以幾乎不需要維護。 g)由于Web的平臺無關(guān)性,可以從一臺服務(wù)器、幾個用戶的工作組級擴展成為擁有成上萬用戶的大型系統(tǒng)。 2)服務(wù)器 a)數(shù)據(jù)都集中存放在數(shù)據(jù)庫服務(wù)器,所以不存在數(shù)據(jù)不一致現(xiàn)象。 b)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025精算師考試資料:合同責任保險合同所形成的負債
- 借款居間服務(wù)合同及借款合同
- 商場簡裝修店面轉(zhuǎn)讓合同書二零二五年
- 大學生職業(yè)規(guī)劃大賽《工程力學專業(yè)》生涯發(fā)展展示
- 2025《我的雇傭合同》
- 2025房產(chǎn)買賣轉(zhuǎn)讓合同
- 一年級 學習生活探索
- 2025個體工商戶的股權(quán)轉(zhuǎn)讓合同
- 2025環(huán)衛(wèi)服務(wù)合同范本
- 2025購車貸款合同模板
- 立繪買斷合同協(xié)議
- 2025春季學期國開電大本科《人文英語3》一平臺在線形考綜合測試(形考任務(wù))試題及答案
- 針灸推拿治療失眠的禁忌
- 利達消防L0188EL火災報警控制器安裝使用說明書
- 河南省駐馬店市部分學校2024-2025學年高三下學期3月月考地理試題(含答案)
- 2025江蘇鹽城市射陽縣臨港工業(yè)區(qū)投資限公司招聘8人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025至2030年中國聲音感應(yīng)控制電筒數(shù)據(jù)監(jiān)測研究報告
- DB50T 1041-2020 城鎮(zhèn)地質(zhì)安全監(jiān)測規(guī)范
- 2025-2030年中國冰激凌市場需求分析與投資發(fā)展趨勢預測報告
- 體育賽事運營方案投標文件(技術(shù)方案)
- 海綿城市施工質(zhì)量保證措施
評論
0/150
提交評論