




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、煙臺大學(xué)計算機與控制工程學(xué)院 軟件素養(yǎng)(2)煙 臺 大 學(xué)軟件素養(yǎng)(2)大作業(yè)題目:_專業(yè): 班級:_姓名: 學(xué)號: 指導(dǎo)教師:_成績:_2016.6.5目錄1.UML簡述1.1 UML的主要作用Unified Modeling Language (UML)又稱統(tǒng)一建模語言或標(biāo)準(zhǔn)建模語言,是始于1997年一個OMG標(biāo)準(zhǔn),它是一個支持模型化和軟件系統(tǒng)開發(fā)的圖形化語言,為軟件開發(fā)的所有階段提供模型化和可視化支持,包括由需求分析到規(guī)格,到構(gòu)造和配置。面向?qū)ο蟮姆治雠c設(shè)計(OOA&D,OOAD)方法的發(fā)展在80年代末至90年代中出現(xiàn)了一個高潮,UML是這個高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、R
2、umbaugh和Jacobson的表示方法,而且對其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。1.2 UML中圖的種類UML規(guī)范用來描述建模的概念有,類(對象的)、對象、關(guān)聯(lián)、職責(zé)、行為、接口、用例、包、順序、協(xié)作,以及狀態(tài)。UML定義了5種類圖,10種模型圖,其中使用較為廣泛的有用例圖和類圖。用例圖:展示系統(tǒng)外部的各類執(zhí)行者與系統(tǒng)提供的各種用例之間的關(guān)系。類圖:展示系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。1.3 用例圖1.4 類圖 。2.面向?qū)ο笤O(shè)計原則2.1 面向?qū)ο蟮脑O(shè)計原則(1)單一職責(zé)原則:一個對象應(yīng)該只包含單一的職責(zé),并且該職責(zé)被完整地封裝在一個類中。(2)開閉原則:一個軟件實體應(yīng)當(dāng)對擴
3、展開放,對修改關(guān)閉。也就是說在設(shè)計一個模塊的時候,應(yīng)當(dāng)使這個模塊可以在不被修改的前提下被擴展,即實現(xiàn)在不修改源代碼的情況下改變這個模塊的行為。(3)里氏代換原則:如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有變化,那么類型S是類型T的子類型。通俗來說,就是所有引用基類(父類)的地方必須能透明地使用其子類的對象。(4)依賴倒轉(zhuǎn)原則:高層模塊不應(yīng)該依賴低層模塊,它們都應(yīng)該依賴抽象。抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。(5)接口隔離原則:客戶端不應(yīng)該依賴那些它不需要的接口,也就是說,一旦一個接口太大,則需要將它分
4、割成一些更細(xì)小的接口,使用該接口的客戶端僅需知道與之相關(guān)的方法即可。(6)合成復(fù)用原則:盡量使用對象組合,而不是用繼承來達(dá)到復(fù)用的目的(7)迪米特法則:每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關(guān)的軟件單位。2.2 實例說明2.21 單一職責(zé)原則某基于Java的C/S系統(tǒng)的“登錄功能”通過如下登錄類(Login)實現(xiàn):現(xiàn)使用單一職責(zé)原則對其進(jìn)行重構(gòu):具體代碼實現(xiàn):/*MainClass類*/public class MainClass public static void main(String args) LoginForm lf=new LoginForm()
5、;lf.Display();/*LoginForm類*/public class LoginForm private UserDao dao;public void init() void Display() public void Validate() /*UserDao類*/public class UserDao private DBUtil db;public boolean findUser(String userName, String userPassword) boolean flag = false;return flag;/*DBUtil類*/import java.sql
6、.Connection;public class DBUtil public Connection getConnection() Connection conn = null;return conn;2.22 開閉原則具體代碼實現(xiàn):public class Test interface Light public void shine();/ 抽象類class WhiteLight implements Light public void shine() System.out.println("發(fā)白光!");class RedLight implements Light p
7、ublic void shine() System.out.println("發(fā)紅光!");class LedLight implements Light public void shine() System.out.println("發(fā)LED光!");class Base public void test(Light l) l.shine();2.23里氏代換原則具體代碼實現(xiàn)public class Test public static void main(String args) Hand hand = new Hand();hand.thing =
8、 new Door();hand.doThing();hand.thing = new Computer();hand.doThing();interface Thing public void doThing();class Door implements Thing public void doThing() class Computer implements Thing public void doThing() class Hand public Thing thing;public void doThing() thing.doThing();3.涉及模式介紹3.1 簡單工廠模式3.
9、11 定義簡單工廠模式(Simple Factory Pattern)屬于類的創(chuàng)新型模式,又叫靜態(tài)工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。3.12 模式動機對于系統(tǒng)中的某些類來說,只有一個實例很重要,例如,一個系統(tǒng)中可以存在多個打印任務(wù),但是只能有一個正在工作的任務(wù);一個系統(tǒng)只能有一個窗口管理器或文件系統(tǒng);一個系統(tǒng)只能有一個計時工具或ID(序號)生成器。3.13 優(yōu)缺點分析簡單工廠模式的優(yōu)點:工廠類含有必要的判斷邏輯,可以決定在什么時候創(chuàng)建哪一個產(chǎn)品類的實例,客戶端可以免除直接創(chuàng)建產(chǎn)
10、品對象的責(zé)任,而僅僅“消費”產(chǎn)品;簡單工廠模式通過這種做法實現(xiàn)了對責(zé)任的分割,它提供了專門的工廠類用于創(chuàng)建對象??蛻舳藷o須知道所創(chuàng)建的具體產(chǎn)品類的類名,只需要知道具體產(chǎn)品類所對應(yīng)的參數(shù)即可,對于一些復(fù)雜的類名,通過簡單工廠模式可以減少使用者的記憶量。通過引入配置文件,可以在不修改任何客戶端代碼的情況下更換和增加新的具體產(chǎn)品類,在一定程度上提高了系統(tǒng)的靈活性。簡單工廠模式的缺點:由于工廠類集中了所有產(chǎn)品創(chuàng)建邏輯,一旦不能正常工作,整個系統(tǒng)都要受到影響。使用簡單工廠模式將會增加系統(tǒng)中類的個數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。系統(tǒng)擴展困難,一旦添加新產(chǎn)品就不得不修改工廠邏輯,在產(chǎn)品類型較多
11、時,有可能造成工廠邏輯過于復(fù)雜,不利于系統(tǒng)的擴展和維護(hù)。簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級結(jié)構(gòu)。3.2 抽象工廠模式3.21 定義抽象工廠模式(Abstract Factory Pattern):提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無須指定它們具體的類。抽象工廠模式又稱為Kit模式,屬于對象創(chuàng)建型模式。3.22 模式動機在工廠方法模式中具體工廠負(fù)責(zé)生產(chǎn)具體的產(chǎn)品,每一個具體工廠對應(yīng)一種具體產(chǎn)品,工廠方法也具有唯一性,一般情況下,一個具體工廠中只有一個工廠方法或者一組重載的工廠方法。但是有時候我們需要一個工廠可以提供多個產(chǎn)品對象,而不是單一的產(chǎn)品對象
12、。3.23 優(yōu)缺點分析抽象工廠模式的優(yōu)點:抽象工廠模式隔離了具體類的生成,使得客戶并不需要知道什么被創(chuàng)建。由于這種隔離,更換一個具體工廠就變得相對容易。所有的具體工廠都實現(xiàn)了抽象工廠中定義的那些公共接口,因此只需改變具體工廠的實例,就可以在某種程度上改變整個軟件系統(tǒng)的行為。另外,應(yīng)用抽象工廠模式可以實現(xiàn)高內(nèi)聚低耦合的設(shè)計目的,因此抽象工廠模式得到了廣泛的應(yīng)用。當(dāng)一個產(chǎn)品族中的多個對象被設(shè)計成一起工作時,它能夠保證客戶端始終只使用同一個產(chǎn)品族中的對象。這對一些需要根據(jù)當(dāng)前環(huán)境來決定其行為的軟件系統(tǒng)來說,是一種非常實用的設(shè)計模式。增加新的具體工廠和產(chǎn)品族很方便,無須修改已有系統(tǒng),符合“開閉原則”。
13、抽象工廠模式的缺點:在添加新的產(chǎn)品對象時,難以擴展抽象工廠來生產(chǎn)新種類的產(chǎn)品,這是因為在抽象工廠角色中規(guī)定了所有可能被創(chuàng)建的產(chǎn)品集合,要支持新種類的產(chǎn)品就意味著要對該接口進(jìn)行擴展,而這將涉及到對抽象工廠角色及其所有子類的修改,顯然會帶來較大的不便。開閉原則的傾斜性(增加新的工廠和產(chǎn)品族容易,增加新的產(chǎn)品等級結(jié)構(gòu)麻煩)3.3 適配器模式3.31 定義適配器模式(Adapter Pattern) :將一個接口轉(zhuǎn)換成客戶希望的另一個接口,適配器模式使接口不兼容的那些類可以一起工作,其別名為包裝器(Wrapper)。適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對象結(jié)構(gòu)型模式。3.32 模式動機適配器提
14、供客戶類需要的接口,適配器的實現(xiàn)就是把客戶類的請求轉(zhuǎn)化為對適配者的相應(yīng)接口的調(diào)用。也就是說:當(dāng)客戶類調(diào)用適配器的方法時,在適配器類的內(nèi)部將調(diào)用適配者類的方法,而這個過程對客戶類是透明的,客戶類并不直接訪問適配者類。因此,適配器可以使由于接口不兼容而不能交互的類可以一起工作。3.33 優(yōu)缺點分析適配器模式的優(yōu)點:將目標(biāo)類和適配者類解耦,增加了類的透明性和復(fù)用性,同時系統(tǒng)的靈活性和擴展性都非常好,更換適配器或者增加新的適配器都非常方便,符合“開閉原則”;適配器模式的缺點:適配器類在很多編程語言中不能同時適配多個適配者類,對象適配器模式的缺點是很難置換適配者類的方法。4.詳細(xì)的類圖設(shè)計畫出該設(shè)計代碼
15、中的類圖結(jié)構(gòu),注意需要特別說明哪一塊使用到了設(shè)計模式,使用的是何種模式。(注意使用starUML或者其他專業(yè)的UML繪圖工具畫)5.代碼列表將所做大作業(yè)的代碼羅列出來(代碼字體采用Arial Unicode字體,5號字)DBConnection:Import6.個人體會設(shè)計模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設(shè)計模式于己于他人于系統(tǒng)都是多贏的;設(shè)計模式使代碼編制真正工程化;設(shè)計模式是軟件工程的基石脈絡(luò),是軟件開發(fā)過程中不可或缺的部分。使用了設(shè)計模式的思想進(jìn)行編程后,極大的提高了程序代碼的復(fù)用性,訓(xùn)練了編程開發(fā)的結(jié)構(gòu)性的設(shè)計能力。通過這次課程設(shè)計使我們在鞏固了課堂所學(xué)知識的基礎(chǔ)上,又培養(yǎng)了靈活運用和組合集成所學(xué)過知識及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資咨詢工程師縱覽試題及答案
- 2024年監(jiān)理工程師考試學(xué)習(xí)交流會試題及答案
- 銀行從業(yè)資格考試難點試題及答案解析
- 玉米種植與氣候變化應(yīng)對考核試卷
- 新材料在運動器材領(lǐng)域的應(yīng)用探討考核試卷
- 高效復(fù)習(xí)銀行考試試題及答案
- 注冊會計師考試時間安排試題及答案
- 汽車銷售行業(yè)可持續(xù)發(fā)展策略考核試卷
- 續(xù)訂、變更勞動合同模板
- 如何保持預(yù)算員考試的良好心態(tài):試題及答案
- LY/T 1970-2011綠化用有機基質(zhì)
- GB/T 893-2017孔用彈性擋圈
- GB/T 4010-2015鐵合金化學(xué)分析用試樣的采取和制備
- GB 6142-1985禾本科主要栽培牧草種子質(zhì)量分級
- 2022屆北京朝陽高三語文一模試卷講評課件
- 中級微觀經(jīng)濟學(xué)(袁正教授)第四講、斯勒茨基
- 人教版語文選修《西游記》課件
- 學(xué)校膳食管理委員會組織及工作職責(zé)
- 廣西壯族自治區(qū)工程造價綜合定額答疑匯編2022年11月更新
- 中國教育學(xué)會教育科研規(guī)劃課題結(jié)題報告格式(參考)doc
- 機動車駕駛員培訓(xùn)機構(gòu)質(zhì)量信譽考核評分表doc-附件1
評論
0/150
提交評論