freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

設(shè)計模式心得體會(編輯修改稿)

2024-11-10 23:05 本頁面
 

【文章內(nèi)容簡介】 它的行為。memento:注重封裝對象狀態(tài)變化,支持狀態(tài)保存、恢復(fù)。mediator:注重封裝對象間的交互,通過封裝一系列對象之間的復(fù)雜交互,使他們不需要顯式相互引用,實現(xiàn)解耦。chainofresponsibility:注重封裝對象責(zé)任,支持責(zé)任的變化,通過動態(tài)構(gòu)建職責(zé)鏈,實現(xiàn)事務(wù)處理。mand:注重將請求封裝為對象,支持請求的變化,通過將一組行為抽象為對象,實現(xiàn)行為請求者和行為實現(xiàn)者之間的解耦。iterator:注重封裝特定領(lǐng)域變化,支持集合的變化,屏蔽集合對象內(nèi)部復(fù)雜結(jié)構(gòu),提供客戶程序?qū)λ耐该鞅闅v。interpreter:注重封裝特定領(lǐng)域變化,支持領(lǐng)域問題的頻繁變化,將特定領(lǐng)域的問題表達為某種語法規(guī)則下的句子,然后構(gòu)建一個解釋器來解釋這樣的句子,從而達到解決問題的目的。observer:注重封裝對象通知,支持通信對象的變化,實現(xiàn)對象狀態(tài)改變,通知依賴它的對象并更新。visitor:注重封裝對象操作變化,支持在運行時為類結(jié)構(gòu)添加新的操作,在類層次結(jié)構(gòu)中,在不改變各類的前提下定義作用于這些類實例的新的操作。正確對待模式:設(shè)計模式建立在對系統(tǒng)變化點的基礎(chǔ)上進行,哪里有變化,哪里就應(yīng)用設(shè)計模式。設(shè)計模式應(yīng)該以演化的方式來獲得,系統(tǒng)的變化點往往是經(jīng)過不斷演化才能準(zhǔn)確定位。不能為了模式而模式,設(shè)計模式是一種軟件設(shè)計的軟力量,而非規(guī)范標(biāo)準(zhǔn),不應(yīng)夸大設(shè)計模式的作用。設(shè)計模式心得體會(2):從一開始學(xué)習(xí)設(shè)計模式至今已半年有余了,第一次接觸設(shè)計模式是一次不經(jīng)意間在網(wǎng)上看到《大話設(shè)計模式》一書,看了前言了第一章后,就感覺到其誘惑力對于一個程序員來說,是無比巨大的。大概是去年十月份的時候,部門決定成立讀書會,系統(tǒng)學(xué)習(xí)設(shè)計模式。通過學(xué)習(xí)設(shè)計模式,除了學(xué)習(xí)到一些設(shè)計模式,還讓我進一步熟悉、鞏固了面向?qū)ο笏枷?,進一步熟悉了c語言。我曾多次設(shè)想,我們?nèi)绻朊嫦驅(qū)ο笏枷?,并結(jié)合設(shè)計模式來重寫或改善我們的系統(tǒng)(必須重寫,雖說設(shè)計模式只是一種思想,語言只是實現(xiàn)而已,但是選擇一門好的語言,無疑也是非常重要的,而vb6在面向?qū)ο蠓矫鎱s有很大欠缺甚至不具備其條件),那么我們的系統(tǒng)將會像目前一樣需要那么多人來維護嗎?《大話設(shè)計模式》一書其實是對gof的《設(shè)計模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書的翻譯,讓人更容易理解,用通俗易懂的語言闡述軟件設(shè)計過程中的一些模式,在某種特定環(huán)境下,用最好的設(shè)計方法(代碼高內(nèi)聚,低耦合,使其有良好的可擴展性和可維護性)達到我們的目的,或許其方法有很多很多,但是尋找到最好的方法卻不是件容易的事,設(shè)計模式是對前人的設(shè)計經(jīng)驗的一個總結(jié),告訴我們在某種特定的環(huán)境下,這樣的設(shè)計師最好的,學(xué)習(xí)設(shè)計模式有助于我們在設(shè)計軟件的過程中少走很多彎路。我對gof的xx個設(shè)計模式雖然都有看過,但是只有理解,實現(xiàn),應(yīng)用及思考之后,才能真正體會其精妙之處,至今體會較深的有以下幾個模式:1strategy——封裝系列算法,讓它們之間可以相互替換,算法并不是單指數(shù)據(jù)結(jié)構(gòu)中的算法,在實踐中,它幾乎可以封裝任何類型的規(guī)則,這使得策略模式的運用極其廣泛;2templatemethod——有人說是用的做多的模式,只要有抽象類的地方,都可以看到這個模式,它通過把不變行為移到父類中去,去除子類中的重復(fù)代碼,從而提供了一個很好的代碼復(fù)用平臺;3facade——提供了對基礎(chǔ)架構(gòu)的統(tǒng)一訪問,減少復(fù)雜性,在web編程者中的三層架構(gòu),就是此思想,每一層都封裝好一部分功能,提供給上一層統(tǒng)一的方法調(diào)用,整個framework體系就是facade模式的封裝,隨著xx升級到xx,越來越多復(fù)雜的高級功能被封裝,可以說facade無處不在;4abstractfactory——提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類,咋一看,太抽象了,說個例子,在三層架構(gòu)中,bll層對dal層的調(diào)用會直接用到dal層中的類,如果dal層是分別對sqlserver,oracle的訪問,bll層需要根據(jù)實際情況決定實例化哪一個dal層中的類,我們又希望在兩種dal層切換時,bll層和ui層都不做改變,那么可在bll層和dal層中增加接口層(體現(xiàn)了抽象的精神,或者說是面向接口編程的最佳體現(xiàn))和抽象工廠(dalfactroy),讓它來實例化dal層中的實例;5singleton——確保一個類僅有一個實例,并提供一個訪問它的全局訪問點,如單件窗體,點一下menu,彈出一個窗體(實例),在關(guān)閉這個新窗體之前,再次點擊該menu,不會再次出現(xiàn)同樣的彈出窗體(實例)。篇幅有限,其他模式或多或少都有點感覺。最后,引用《設(shè)計模式解析》書中的一句話:設(shè)計模式體現(xiàn)的是一種思想,而思想是指導(dǎo)行為的一切,理解和掌握了設(shè)計模式,并不是說記住了xx種(或更多)設(shè)計場景和解決策略(實際上這也是很重要的一筆財富),實際接受的是一種思想的熏陶和洗禮,等這種思想融入到了你的思想中后,你就會不自覺地使用這種思想去進行你的設(shè)計和開發(fā),這一切才是最重要的。第二篇:設(shè)計模式初學(xué)心得以前沒有接觸過設(shè)計模式,那其實也是因為以前沒有真正經(jīng)歷過面向?qū)ο蟮脑O(shè)計。這樣的情況在我經(jīng)歷了本科畢業(yè)設(shè)計,并且遵循我們實驗室的一位師兄的建議看了《設(shè)計模式精解》([美]alanshal(轉(zhuǎn)載請注明來源:)lowayamp。jamesrtrott著,熊節(jié)譯)后有了根本的改變,我開始意識到一個程序員和一個設(shè)計者的區(qū)別,我也開始意識到在同學(xué)眼中“編程很強”的我只是——至少現(xiàn)在只是一個程序員。我做的本科畢設(shè)是基于javaswing設(shè)計一個類似繪圖程序的系統(tǒng),最終我設(shè)計出來的程序,在別人看來很不錯。但是只有我自己知道,我的設(shè)計其實是糟糕了,最明顯的就是低內(nèi)聚、緊耦合,那些代碼甚至連我都不愿意去維護。于是當(dāng)我看到書中的一句話:“幾乎百分之百的軟件都不是由它最初的設(shè)計者去維護的??”,更讓我感到這次設(shè)計的失?。ň瓦B它的設(shè)計者都不原意去維護)?!对O(shè)計模式精解》的出現(xiàn)可以說讓我眼前一亮,這也是第一本讓我想再讀一次的書(即使現(xiàn)在我還沒有讀完)。究竟什么是模式?書中的解釋是“模式是針對特定場景下的特定問題的可重復(fù)、可表達的解決方案”,除此之外模式還必須有三個要點:1.可重復(fù)性。解決方案應(yīng)該對應(yīng)于外部的場景。2.可傳授性。一個解決方案應(yīng)該可以移植到問題的不同情況中(絕大多數(shù)模式的可傳授性都建立在“約束”和“效果”的基礎(chǔ)上)。3.用來表示這個模式的名稱。模式不限于面向?qū)ο?,不限于設(shè)計階段,甚至不限于軟件開發(fā)領(lǐng)域。設(shè)計模式只是模式的一個子集。在前言中作者說在他對現(xiàn)有的設(shè)計模式的指導(dǎo)原則及策略都非常清楚之后,這些原則幫助他決定開始過一種為人解惑的生活??雖然我第一次看到“為人解惑的生活”這個詞語,但是我立刻感到這也是我所向往的一種生活。書中介紹了軟件開發(fā)過程中的三個不同視角:1.概念視角。這個視角“展現(xiàn)了問題領(lǐng)域中的概念??一個概念模型可以在對實現(xiàn)軟件有很少或毫無注意的情況下畫出??”2.規(guī)格視角?!爸豢窜浖慕涌?,而不看實現(xiàn)” 3.實現(xiàn)視角。就是現(xiàn)在的我唯一使用的視角——置身于代碼之中??吹竭@里我更加肯定了這本所講的是我從來沒有注意過的東西,但是我對這些東西應(yīng)該非常感興趣,而我也深深地感慨:我為什么現(xiàn)在才看到這本書。在書中作者回顧了它從前的一個設(shè)計,通過不斷修改得出的優(yōu)秀設(shè)計,逐步展現(xiàn)出設(shè)計模式的強大威力。書中有句話很經(jīng)典——如果你只有一把錘子,那你會發(fā)現(xiàn)所有的東西都像釘子。意思是說如果你只知道一種解決問題的辦法,那你只會想用這個方法解決所有問題。我覺得這很像現(xiàn)在的我,在面向?qū)ο蟮脑O(shè)計中我?guī)缀踔粫邦惱^承”,結(jié)果是我的畢設(shè)——過高的繼承體系導(dǎo)致緊耦合、低內(nèi)聚。當(dāng)我學(xué)到書中介紹的第一個設(shè)計模式:facade模式,我立刻對這些設(shè)計模式產(chǎn)生了濃厚的興趣,我發(fā)現(xiàn)自己像一個“完美主義者”,在試圖追求結(jié)構(gòu)完美的程序代碼(可讀性好、易于維護),而設(shè)計模式給我提供了這樣的可能,盡管我僅僅看到了它的一點點部分。設(shè)計模式就像一個漂亮的女孩,而且你知道她不僅外表很漂亮,也很有內(nèi)涵,那你想做的事情還有什么呢?當(dāng)然是盡快接近并了解她?? 第三篇:設(shè)計模式之心得剛學(xué)幾天就有一些淺薄的心得了。在學(xué)過的幾種設(shè)計模式中(目前為止,本人只學(xué)過創(chuàng)建性模式),每一種設(shè)計模式都會有一種具體的應(yīng)用場景,每一種場景描述的都是一種需求變化。設(shè)計模式就是用來解決這些變化的。只要客戶有新的需求,你的程序就要發(fā)生改變,不管你用什么方法,這個改變是避免不了的。關(guān)鍵是你如何是解決這種變化!設(shè)計模式就是尋求一種通用的較好的方法來解決這種變化而不是避免這種變化,并不是你應(yīng)用了設(shè)計模式,你的系統(tǒng)就不會發(fā)生變化了。面向?qū)ο蟮木幊逃腥髾C制,我個人認(rèn)為,設(shè)計模式很好的利用了其中的“封裝與多態(tài)”(當(dāng)然并不是所有的設(shè)計模式都是這樣的,也不是說繼承就沒用,繼承在三大機制排第一呀,是基本的),比如工廠方法模式和生成器模式?!胺庋b”的意義不僅僅在于封裝代碼的實現(xiàn),更重要的是“封裝”系統(tǒng)中變化的部分。設(shè)計模式回答了怎么樣去“封裝”這種變化。在一個系統(tǒng)中,總會有一部分經(jīng)常發(fā)生變化,相對的,也總有一個部分是改變頻率較低的,我們可以在某種范圍內(nèi)將其理解為不改變的部分。設(shè)計模式要作的事情就是把“變化”的部分封裝起來,實現(xiàn)將“變化”的部分與“不變化”的部隔離,這樣,“變化”的部分在發(fā)生變化時,不會影響到“不改變”的部分。如果你也學(xué)過設(shè)計模式,那你可能跟我有同感。設(shè)計模式解決變化的途徑可以概括為兩步(純屬個人見解):一是轉(zhuǎn)移變化,二是轉(zhuǎn)化變化。首先是“轉(zhuǎn)移變化”。簡單的說就是把a部分的變化轉(zhuǎn)移到b部分,請b去變化,讓a不發(fā)生變化。在程序中就是將變化從調(diào)用者轉(zhuǎn)移到被調(diào)用者。比如,你有一個類scene,這個類用于顯現(xiàn)一種風(fēng)格的游戲場景,調(diào)用程序?qū)嵗@個類并使用它。如果有一天,需求改變了,當(dāng)前風(fēng)格的游戲場景顏色太冷了,我需要改變當(dāng)前場景的顏色。這個時候你要決定,要讓誰去發(fā)生變化?是讓客戶調(diào)用程序去改變scene類的顏色屬性呢,還是讓你的類scene發(fā)生變化?設(shè)計模式回答的是,請scene發(fā)生變化,調(diào)用者不發(fā)生變化。為什么要這樣回答,因為這個時候,你的系統(tǒng)可能已經(jīng)交付用戶了,如果讓調(diào)用者發(fā)生變化,那整個系統(tǒng)都要發(fā)生變化。(這里討論只是一個簡單的應(yīng)用,實際情況中往往沒有這里簡單。如果實際情況是這么簡單的話,設(shè)計模式估計就沒有用處了。)然后是“轉(zhuǎn)化變化”。確定了要改動scene,那要怎么樣去改scene呢?直接改嗎?當(dāng)然不行,如果是這樣改,那還不如讓調(diào)用者去設(shè)置scene的某個屬性呢,反正都要重新部署。那要怎么改?“擴展”,把這種“改變”轉(zhuǎn)化為“擴展”。你不是要另外一種scene嗎?那我重新為你設(shè)計一個sence并生成dll交付你,然后讓現(xiàn)有的程序去調(diào)用這個scene。當(dāng)然,這時可能需要調(diào)用者稍微的發(fā)生一下變化,比如開始調(diào)用者是直接調(diào)用scene來呈現(xiàn)場景的,現(xiàn)在將其改為根據(jù)配置文件來決定要呈現(xiàn)那種scene。但是如果之前你已經(jīng)考慮到這個問題了,那調(diào)用者是不需要發(fā)生任何變化的,因為調(diào)用者是根據(jù)配置來決定所呈現(xiàn)的場景,需求發(fā)生彎化,只需要改變配置文件(可能是一個xml),把調(diào)用者與新添的scene關(guān)聯(lián)即可,這樣一來,“改動”就變?yōu)椤皵U展”,其帶來的好處也是顯而易見的,這也就是所謂的“開閉”原則。以上文字完全是本人理解,隨著不斷的學(xué)習(xí),我想這么文章估計要被改好多次,這是一個學(xué)習(xí)的過程。理解錯了、寫錯了都不要緊,關(guān)鍵是你怎么樣去面對這種錯誤!是拒絕承認(rèn)錯誤還是正視錯誤?這也是設(shè)計模式回答的問題。第四篇:洋思模式心得體會 洋思模式心得體會從學(xué)習(xí)杜郎口到學(xué)習(xí)洋思已經(jīng)好幾年了,每年每學(xué)期都要進行大規(guī)模的聽課活動,可謂轟轟烈烈,但學(xué)習(xí)了好幾年時間,
點擊復(fù)制文檔內(nèi)容
合同協(xié)議相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1