設(shè)計模式題庫以及答案_第1頁
設(shè)計模式題庫以及答案_第2頁
設(shè)計模式題庫以及答案_第3頁
設(shè)計模式題庫以及答案_第4頁
設(shè)計模式題庫以及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、選擇題(20分,20個)二、簡答題(30分,6個)1、框架的定義是框架就是一組相互協(xié)作的類,對于特定的一類軟件,框架構(gòu)成了一種可重用的設(shè)計。2、架構(gòu)是一個軟件系統(tǒng)從整體到部分的最高層次的劃分。 架構(gòu)包括架構(gòu)元件(Architecture Component)、聯(lián)結(jié)器(Connector)、任務(wù)流(Task-flow)3、架構(gòu)的目標:可靠性、安全性、可拓展性、可定制化、可維護性、客戶體驗、市場時機4、架構(gòu)分成三種:邏輯架構(gòu)、物理架構(gòu)、系統(tǒng)架構(gòu)5、架構(gòu)的兩要素:元件劃分、設(shè)計決定6、設(shè)計模式是一系列在實踐中總結(jié)出來的可復用的面向?qū)ο蟮能浖O(shè)計方法7、劃分三種不同層次的模式:架構(gòu)模式(Archi

2、tectural Pattern)、設(shè)計模式(Design Pattern)、成例(Idiom)。成例有時稱為代碼模式(Coding Pattern)。8、創(chuàng)建型設(shè)計模式,如工廠方法(Factory Method)模式、抽象工廠(Abstract Factory)模式、原型(Prototype)模式、單例(Singleton)模式,建造(Builder)模式9、結(jié)構(gòu)型設(shè)計模式,如合成(Composite)模式、裝飾(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、門面(Facade)模式、橋梁(Bridge)模式10、架構(gòu)模式描述軟件系統(tǒng)里的基本的結(jié)構(gòu)組織或綱

3、要11、常見的架構(gòu)模式:分層模式、黑板模式、中介模式、分散過程模式、微核模式12、框架與架構(gòu)之間的關(guān)系 :架構(gòu)確定了系統(tǒng)整體結(jié)構(gòu)、層次劃分,不同部分之間的協(xié)作等設(shè)計考慮??蚣鼙燃軜?gòu)更具體。更偏重于技術(shù)涉嫌。確定框架后,軟件體系結(jié)構(gòu)也隨之確定,而對于同一軟件體系結(jié)構(gòu)(比如Web開發(fā)中的MVC),可以通過多種框架來實現(xiàn)13、框架與設(shè)計模式之間的關(guān)系 :設(shè)計模式研究的是一個設(shè)計問題的解決方法,一個模式可應(yīng)用于不同的框架和被不同的語言所實現(xiàn);而框架則是一個應(yīng)用的體系結(jié)構(gòu),是一種或多種設(shè)計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設(shè)計可以被重用,在思想上存在著統(tǒng)一性的特點,因而設(shè)計模式的

4、思想可以在框架設(shè)計中進行應(yīng)用14、框架和設(shè)計模式存在著顯著的區(qū)別:應(yīng)用領(lǐng)域(前者單一解決方案可在不同框架上用)、內(nèi)容(模式單純設(shè)計、框架式設(shè)計與代碼的混合體)15、設(shè)計模式比框架更容易移植16、類之間的關(guān)系:關(guān)聯(lián)(自身關(guān)聯(lián)、單向、雙向?qū)嵕€箭頭)、聚合(空心箭頭)/組合<包容>(實心箭頭)、依賴(虛線箭頭)、泛華(繼承,實線三角形)、實現(xiàn)(虛線三角形)17、基本元素符:類、包、接口18、開閉(OCP)原則:一個軟件實體應(yīng)當對擴展開放,對修改關(guān)閉。19、OCP原則優(yōu)點:a、通過擴展已有軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新的需求,使變化中的軟件有一定的適應(yīng)性和靈活性。b、已有軟件

5、模塊,特別是最重要的抽象層模塊不能再修改,這使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。20、里氏代換原則(LSP):子類型必須能夠替換它們的基類型21、依賴倒置(DIP)原則是:要依賴于抽象,不要依賴于具體。22、工廠類優(yōu)點:缺點:含有必要的判斷邏輯,實現(xiàn)了對責任的分割;一旦不能正常工作,整個系統(tǒng)都要受到影響23、工廠方法模式是類的創(chuàng)建模式24、抽象工廠(具體工廠)角色:是工廠方法模式的核心25、工廠方法類的核心是一個抽象工廠類,而簡單工廠模式把核心放在一個具體類上。26、代碼表示聚合關(guān)系:public class EmployeePrivate EmpType et;Public EmpTy

6、pe getEmpType()Employee到Emptype。三、綜合體(50分,5個編程題) 1、公共數(shù)據(jù)庫:sql語句、參數(shù)、存儲過程public static string connectionString = System.Configuration.ConfigurationSettings.AppSettings"conStr".ToString();sql語句:public static int ExecuteSql(string SQLString) using (OracleConnection connection = new OracleConnec

7、tion(connectionString) using (OracleCommand cmd = new OracleCommand(SQLString, connection) try connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; catch (System.Data.SqlClient.SqlException E) connection.Close(); throw new Exception(E.Message); 參數(shù):public static int ExecuteSql(string SQL

8、String, params OracleParameter cmdParms) using (OracleConnection connection = new OracleConnection(connectionString) using (OracleCommand cmd = new OracleCommand() try PrepareCommand(cmd, connection, null, SQLString, cmdParms); int rows = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return rows; t

9、.SqlException E) throw new Exception(E.Message); 存儲過程:public static int ExecuteSql(string SQLString, string content) using (OracleConnection connection = new OracleConnection(connectionString) OracleCommand cmd = new OracleCommand(SQLString, connection); System.Data.SqlClient.SqlParameter myParamete

10、r = new System.Data.SqlClient.SqlParameter("content", SqlDbType.NText); myParameter.Value = content; cmd.Parameters.Add(myParameter); try connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; catch (System.Data.SqlClient.SqlException E) throw new Exception(E.Message); finally c

11、md.Dispose(); connection.Close(); 2、實體層public class 部門Model string depart_id; public 部門Model(); public 部門Model(string id, string name, string leader, string disc) this.depart_id = id; public string 部門編號 get return depart_id; set depart_id = value; 3、數(shù)據(jù)訪問層:接口、實現(xiàn)類接口:public interface ICommon bool Inser

12、t(object Model); object Select(string id); List<object> SelectList(); bool Update(object Model); bool Delete(object Model); public interface I部門 : ICommon string get部門ID(); List<員工Model> GetLeader(部門Model m1); 實現(xiàn)類:public class 部門:I部門 public bool Insert(object m) 部門Model m1 = m as 部門Model

13、; OracleParameter paras = new OracleParameter("p_Id",OracleType.Char,13), new OracleParameter("P_name",OracleType.NVarChar), new OracleParameter("P_leader",OracleType.Char,13), new OracleParameter("p_disc",OracleType.NVarChar) ; paras0.Value = m1.部門編號; paras1.

14、Value = m1.部門名稱; paras2.Value = m1.部門領(lǐng)導; paras3.Value = m1.部門描述; if (OracleHelper.RunProcedureTotal("TB_DEPARTMENT_INSERT", paras)=1) return true; else return false; 4、工廠模式工廠:public class ClassCreate public static T Create<T>(string classname) string path = System.Configuration.Confi

15、gurationManager.AppSettings"DAL".ToString(); string className = path + "." + classname; return (T)Assembly.Load(path).CreateInstance(className); 配置文件(app.config):<?xml version="1.0"?><configuration> <appSettings> <add key="conStr" value="Data Source=ksxt;User ID=rjsj;Unicode=True;password=123"/> <add key="DAL" value="SQLDAL"/> </appSettings></configuration> 5、業(yè)務(wù)邏輯層public class B部門 private static

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論