第一篇:《Head.First設(shè)計模式》 讀書筆記大全
目錄
1、創(chuàng)建型設(shè)計模式........................1
1.1工廠方法Factory Method【類】與抽象工廠Abstract Factory【對象、chapter 4】...1
1.2單件Singleton【chapter5、對象】...................22、結(jié)構(gòu)型設(shè)計模式........................2
2.1適配器Adapter【chapter7、類/對象】...................2
2.2組合Composite【chapter9、對象】.................2
2.3裝飾者Decorator【chapter3、對象】.....................2
2.4外觀Facade【chapter7、對象】................3
2.5代理Proxy【chapter11、對象】................33、行為型設(shè)計模式........................3
3.1模板方法Template Method【chapter8、類】...............3
3.2命令Command【chapter6、對象】..................3
3.3迭代器Iterator【chapter9、對象】..................4
3.4觀察者Observer【chapter2、對象】...............4
3.5狀態(tài)State【chapter10、對象】.................4
3.6策略Strategy【chapter1、對象】.....................44、與設(shè)計模式相處........................51、創(chuàng)建型設(shè)計模式
1.1工廠方法Factory Method【類】與抽象工廠Abstract Factory【對象、chapter 4】
(1)工廠方法Factory Method:
定義:由子類決定要實例化的類是哪一個。讓類把實例化推遲到子類。
實例:拓展披薩工廠,有各地風(fēng)味的加盟店。
實現(xiàn):分為Product(產(chǎn)品類 披薩)和Creator(創(chuàng)建者類 PizzaStore)兩個類層級,都有許多具體的子類,每個子類都有自己特定的實現(xiàn)。
相關(guān):“依賴倒置原則Dependency Inversion Principle”【6】。要依賴抽象,不要依賴具體類。PizzaStore是高層組件、比薩實現(xiàn)是低層組件,前者依賴后者。
(2)抽象工廠Abstract Factory:
定義:提供一個接口,用于創(chuàng)建相關(guān)或依賴對象的家族,而不需要明確指定具體類。
實例:原料(產(chǎn)品家族)工廠,每個子類都使用其區(qū)域的供貨商來實現(xiàn)這些原料。相關(guān):每個原料代表一個產(chǎn)品,由抽象工廠的工廠方法產(chǎn)生。
1.2單件Singleton【chapter5、對象】
定義:確保一個類只有一個實例,并提供一個全局訪問點。獨一無二的對象。實例:只有一個巧克力鍋爐在用。
相關(guān):處理多線程的情況。
2、結(jié)構(gòu)型設(shè)計模式
2.1適配器Adapter【chapter7、類/對象】
定義:將一個類的接口,轉(zhuǎn)換成客戶期望的另一個?!緦ο筮m配器】
實例:交流電適配器、包裝了鴨子適配器的火雞(火雞就是被適配者插座)實現(xiàn):類適配器不是使用組合,而是繼承被適配者和目標(biāo)類,需要多重繼承。相關(guān):將枚舉適配到迭代器
2.2組合Composite【chapter9、對象】
定義:允許將對象組合成樹形結(jié)構(gòu)來表現(xiàn)“整體/部分”層次結(jié)構(gòu),能讓客戶以一致的方式處理個別對象和對象組合。
實例:添加甜點子菜單、菜單組件和菜單項、素食菜單
相關(guān):組合和迭代器湊在一起的魔力?
2.3裝飾者Decorator【chapter3、對象】
定義:動態(tài)地將責(zé)任附加到對象上,若要拓展功能,裝飾者比繼承更有彈性。實例:星巴克咖啡的飲料訂單(含摩卡、奶泡等各種配料)
實現(xiàn):“開放-關(guān)閉原則”【5】,類應(yīng)該對擴展開放、對修改關(guān)閉。
相關(guān):給愛用繼承的人一個全新的設(shè)計眼界。
2.4外觀Facade【chapter7、對象】
定義:提供一個統(tǒng)一的接口,簡化子系統(tǒng)中的一群接口。
實例:家庭影院 簡化觀賞電影
相關(guān):“最少知識Least Knowledge”原則【7】,只和密友談話,減少對象之間的交互。
2.5代理Proxy【chapter11、對象】
定義:為另一個對象提供一個替身或占位符以控制對這個對象的訪問。
實例:糖果機的監(jiān)視器、顯示CD封面(加載中,請稍后…)、對象村的配對
相關(guān):虛擬代理控制訪問實例化開銷大的對象,有許多變體:緩存代理、防火墻代理等。遠(yuǎn)程代理 Java RMI、虛擬代理、動態(tài)代理、寫入時復(fù)制代理、同步代理等。
3、行為型設(shè)計模式
3.1模板方法Template Method【chapter8、類】
定義:在一個方法中定義一個算法的骨架,將部分步驟延遲到子類中。
實例:星巴克咖啡和茶的沖泡方法融合、排序鴨子….、一個Swing的窗口程序
實現(xiàn):定義了一個算法的步驟,允許子類為各步提供實現(xiàn)。使用鉤子,讓子類選擇要不要覆蓋某步。
相關(guān):“好萊塢原則”【8】,別調(diào)用(打電話給)我們,我們會調(diào)用(打電話給)你。工廠方法是模板方法的一種特殊版本。代碼復(fù)用的重要技巧!
3.2命令Command【chapter6、對象】
定義:將“請求”封裝成對象,以便使用不同的請求、隊列或者日志來參數(shù)化其它對象。也支持可撤銷undo()的操作。
實例:家電自動化遙控器、命令相當(dāng)于對象村餐廳的訂單
實現(xiàn):調(diào)用者Invoker(女招待、遙控器)
相關(guān):將發(fā)出請求的對象和執(zhí)行請求的對象解耦;宏命令運行調(diào)用多個命令。
3.3迭代器Iterator【chapter9、對象】
定義:順序訪問一個聚合對象中的各個元素,而不暴露其內(nèi)部的表示。
實例:對象村餐廳和煎餅屋合并之后,菜單實現(xiàn)
實現(xiàn):菜單項的存儲方式不同,包括數(shù)組、Arraylist
相關(guān):“單一責(zé)任”【8】,一個類應(yīng)該只有一個引起變化的原因。內(nèi)聚cohesion。
3.4觀察者Observer【chapter2、對象】
定義:定義了對象之間一對多依賴,當(dāng)一個對象改變狀態(tài)時,所有依賴者都會得到通知并自動更新。
實例:氣象監(jiān)測站、布告板更新
實現(xiàn):主題對象、許多觀察者Observable類
相關(guān):“松耦合原則”【4】,為了交互對象之間的松耦合設(shè)計而努力。
3.5狀態(tài)State【chapter10、對象】
定義:允許對象在內(nèi)部狀態(tài)改變時改變它的行為,對象看起來像是修改了它的類。實例:糖果機的控制
實現(xiàn):每個狀態(tài)都封裝成一個類,并實現(xiàn)State接口。Context上下文會隨著狀態(tài)的改變將行為委托給當(dāng)前狀態(tài)對象。
相關(guān):應(yīng)用在條件語句繁多的場景。
3.6策略Strategy【chapter1、對象】
定義:定義了算法族,分別封裝起來,讓它們之間可以相互替代。
實例:鴨子飛、呱呱叫
實現(xiàn): 使用組合相關(guān):
“封裝變化”【1】,Duck類內(nèi)的fly()會隨著鴨子的不同而改變?!搬槍涌诰幊獭薄?】,而不是針對實現(xiàn)編程。
“多用組合”【3】,少用繼承。
4、與設(shè)計模式相處
不要為了使用而使用;保持簡單且有彈性Keep it Simple/KISS。非僵化的教條;應(yīng)需而變。
讓你的團(tuán)隊擁有共享詞匯,能夠最大化溝通的價值!
模式是“被發(fā)現(xiàn)”,而非“被發(fā)明”。
模式被認(rèn)為是歷經(jīng)驗證的OO設(shè)計經(jīng)驗;真模式必須通過“三次規(guī)則”。良好的OO設(shè)計必須具備:可復(fù)用、可擴充、可維護(hù)三個特性。
第二篇:豐田模式讀書筆記2
《豐田模式》讀書筆記2
20120830
《精益生產(chǎn)》中,把精益制造定義為包含五個步驟的流程:
定義顧客的價值
定義機制的流程
建立連續(xù)的作業(yè)流程
拉動式
努力追求卓越
想成為一個精益的制造者,首先思維模式必須著重使產(chǎn)品的生產(chǎn)變成連續(xù)的附加值流程(亦即單件流),然后采取根據(jù)下游顧客需求而決定上游環(huán)節(jié)產(chǎn)量的拉動式生產(chǎn)方式——亦即上游環(huán)節(jié)只生產(chǎn)補充后續(xù)環(huán)節(jié)在短期間要領(lǐng)取的物料和零部件,最后關(guān)鍵在于建立一種努力追求持續(xù)改善的公司文化。
豐田的生產(chǎn)方式具有很強的靈活性,當(dāng)你把前置期縮短,并注重維持生產(chǎn)線的彈性時,實際上就能提升質(zhì)量,對顧客需求做出更佳的回應(yīng),提高生產(chǎn)力,改善設(shè)備和空間的利用率。
豐田對某些問題的解決方法,往往看似增加浪費,而非杜絕。這些看似矛盾的解決方法得自大野耐一親自觀察工廠作業(yè)以后,對“未能創(chuàng)造價值的浪費”所獲得的特殊理解:它和充分運用勞工與機器設(shè)備沒有太大關(guān)聯(lián),主要的影響因素是把原料轉(zhuǎn)化為可售商品的流程。
精益生產(chǎn)需要工具如:快速的設(shè)備切換、職務(wù)工作的標(biāo)準(zhǔn)化、拉動式生產(chǎn)方式,防錯技術(shù)等,更重要的是需要豐田生產(chǎn)方式背后真正的力量:該公司的管理層能夠持續(xù)投資于“人”,并倡導(dǎo)持續(xù)改善的公司文化。豐田模式包含的不只是“準(zhǔn)時生產(chǎn)”之類的精益生產(chǎn)工具而已。許多公司誤把一套特定的精益生產(chǎn)工具當(dāng)成深層的精益思維,其實,豐田模式中的精益思維涉及更深入、更普遍及滲透的文化轉(zhuǎn)型,大多數(shù)公司根本未設(shè)想到這一點。
企業(yè)應(yīng)該從推動一兩個方案以刺激全體員工熱忱為切入點。成熟確立的生產(chǎn)單位,解決問題的員工團(tuán)隊,公司制造特定的員工解決問題實踐與獎勵誘因,為員工設(shè)立學(xué)習(xí)資源中心。
豐田公司在建立組裝線時,只挑選最優(yōu)秀、最聰明的員工,并鼓勵他們通過不斷解決問題,在自己的領(lǐng)域?qū)崿F(xiàn)成長。同樣,豐田的銷售、工程采購、財務(wù)、人力資源等所有部門的員工都是經(jīng)過精挑細(xì)選的,公司要求他們設(shè)法改善自己的作業(yè)流程,找出滿足顧客的創(chuàng)新方法。
如何顯著改善作業(yè)流程?
杜絕與資源的浪費浪費
在工作場所的體制中內(nèi)建質(zhì)檢
尋找低成本但可靠的方法以替代昂貴的新技術(shù)
力求作業(yè)流程的盡善盡美
建立追求持續(xù)改善的文化
第三篇:《豐田模式》讀書筆記3
《豐田模式》讀書筆記3
20120831
杜絕浪費——豐田生產(chǎn)方式的核心
什么是浪費?創(chuàng)造價值的活動是有意義的,對顧客而言,未能創(chuàng)造價值的活動就是浪費,這里的顧客包括工作中下個流程的工作人員。
八大未能創(chuàng)造價值的浪費:
豐田公司找到了七大類未能創(chuàng)造價值的浪費,但本書的作者在深刻理解了豐田模式的基礎(chǔ)上提出了第八類浪費,筆者認(rèn)為其反應(yīng)了豐田模式最深層次的內(nèi)涵——發(fā)揮員工不斷持續(xù)改善的創(chuàng)造力,形成精益生產(chǎn)的企業(yè)文化。
不只是生產(chǎn)線,包括產(chǎn)品研發(fā)流程、接受訂單及辦公流程等,都可以區(qū)別出這七類浪費情形:
1.生產(chǎn)過剩 :生產(chǎn)出尚未有訂單的項目,造成人員過剩和過多存貨導(dǎo)致的存儲與輸送等成本的浪費
2.在現(xiàn)場等待的時間:員工只是在一旁監(jiān)看自動化機器,或必須站在一旁等候下一個處理步驟、工具、供應(yīng)、零部件,等等,或是因為存貨用完、整批處理延遲、機器設(shè)備停工、產(chǎn)能瓶頸等因素造成員工暫時沒有工作可做。
3.不必要的運輸:長距離搬運在制品;缺乏效率的運輸;進(jìn)出倉庫或在流程之間搬運遠(yuǎn)物料、零件或最終成品。
4.過度處理或不正確的處理:采取不必要的步驟以處理零部件;因
為工具與產(chǎn)品設(shè)計不良,導(dǎo)致不必要的動作及產(chǎn)生瑕疵而造成缺乏效率的處理;當(dāng)提供超出必要的較高質(zhì)量產(chǎn)品時也會造成浪費。
5.存貨過剩:過多原料、在制品或最終成品,導(dǎo)致較長的前置期、陳舊過時品、毀損品、運輸與存儲成本延遲。才外,過多存貨還會造成其他隱形問題,如生產(chǎn)不均衡、供應(yīng)者延遲遞送、次品率上升、機器設(shè)備停工、拉長整備期(setup time)。
6.不必要的移動搬運:員工在執(zhí)行工作的過程中,任何浪費、不必要的的動作,如尋找、前往取得,或是在堆放零件、工具等。此外,走動也是浪費。
7.瑕疵:生產(chǎn)出次品或必須修改的東西、修理或重做、報廢、更換生產(chǎn)、檢驗等,意味著成本、時間和精力的浪費。
8.未被使用的員工創(chuàng)造力:由于未使員工參與投入或未能傾聽員工意見而造成未能善用員工的時間、構(gòu)想、技能,使員工失去改善與學(xué)習(xí)的機會。
其中過量生產(chǎn)是最嚴(yán)重的浪費,因為其他的浪費大多由其導(dǎo)致,所以作為精益生產(chǎn),很關(guān)鍵的一點是避免生產(chǎn)過剩產(chǎn)生的浪費。
根據(jù)精益生產(chǎn)的概念,對任何流程,你應(yīng)該做的第一件事是根據(jù)材料(或是文件、信息)的行進(jìn)流程路徑來規(guī)劃價值流程,最好的方法是按照此流程路徑進(jìn)行實地操作,以獲得充分的實際經(jīng)驗。你可以畫出這條流程路徑,計算花費的實踐與行進(jìn)的距離,然后賦予其一個高度技術(shù)性的名詞——“復(fù)式線路圖”(spaghetti diagram)網(wǎng)上一般
稱為“意粉圖”百度翻譯為“意大利面圖”。詳細(xì)關(guān)于spaghetti diagram 的制作與展示將會在以后呈現(xiàn)。
以人為核心
豐田生產(chǎn)方式并不是一套工具,他并非只是包含準(zhǔn)時生產(chǎn)、作業(yè)小組、5S、看板等內(nèi)容的一套精益工具,它是一種高度發(fā)達(dá)的生產(chǎn)制度,結(jié)合了所有部分而成為一個完整的體制。
這個完整的生產(chǎn)體制,其根本在于支持與鼓勵員工持續(xù)改善他們的工作流程。不幸的是,許多關(guān)于精益生產(chǎn)的書籍把豐田生產(chǎn)制度誤解為提高員工工作效率的一套工具,致使這些工具迷失了方向,也忽略了豐田生產(chǎn)方式核心的精髓。更廣義、全面地來看,豐田生產(chǎn)方式其實是應(yīng)用豐田模式的原則,最初的中心放在生產(chǎn)環(huán)節(jié)上,但事實上,其原則涉及更廣泛層面,完全可以應(yīng)用于工程、行政管理、后勤服務(wù)等環(huán)節(jié)。
第四篇:豐田模式讀書筆記1
《豐田模式》讀書筆記(1)
豐田模式其成功的秘訣在于:以聞名世界的工具及質(zhì)量改善方法做為基礎(chǔ),其中包括,準(zhǔn)時生產(chǎn)、改善單件流、自動化、均衡化等工具,更為重要的是以了解和激勵員工來成功實行這些工具的企業(yè)經(jīng)營理念。換句話說,豐田的成功根源在于:它能培養(yǎng)領(lǐng)導(dǎo)力、團(tuán)隊與文化;而且它能有效地制定戰(zhàn)略、建立堅實的供應(yīng)商關(guān)系;以及建立并維持一個學(xué)習(xí)型組織。
豐田的14項原則可以分為四大類,簡稱4P:
A.理念(philosophy)B.流程(process)
C.員工/合作伙伴(people/partners)D.解決問題(problem solving)理念:管理決策以長期理念為基礎(chǔ),即使?fàn)奚唐谪攧?wù)指標(biāo)也在所不惜 流程:建立連續(xù)的作業(yè)流程以使問題浮現(xiàn)
利用“拉動系統(tǒng)”避免生產(chǎn)過剩
平抑工作量(均衡化)
出現(xiàn)質(zhì)量問題即停止生產(chǎn)(自動化)
為實現(xiàn)持續(xù)改善將任務(wù)標(biāo)準(zhǔn)化
通過可視化管理使問題無所隱藏
只采用可靠的、經(jīng)過充分驗證的技術(shù)
員工/合作伙伴:培養(yǎng)深蘊公司哲學(xué)理念的領(lǐng)袖
尊重、培養(yǎng)并挑戰(zhàn)你的員工和團(tuán)隊
尊重、挑戰(zhàn)并幫助你的供應(yīng)商
解決問題:利用“改善”使組織保持學(xué)習(xí)
親臨現(xiàn)場,徹底了解情況
制定策略時要穩(wěn)健,窮盡所有的選擇并征得一致同意
實施決策時要迅速
精益生產(chǎn)的影響力極大,但大多數(shù)企業(yè)在應(yīng)用實施此方法時的做法相當(dāng)膚淺,因為他們過度注重工具,不了解完整的精益生產(chǎn)制度必須滲透至組織文化中。大多數(shù)實施精益生產(chǎn)的公司,其資深管理層并未參與日常運營作業(yè)與持續(xù)改善行動,這些都是精益生產(chǎn)制度中極為重要的部分。
真正的精益企業(yè)應(yīng)當(dāng)是把豐田生產(chǎn)方式應(yīng)用于業(yè)務(wù)所有的層面所獲得的結(jié)果。
第五篇:企業(yè)應(yīng)用架構(gòu)模式讀書筆記
企業(yè)應(yīng)用架構(gòu)模式讀書筆記
主要說明的問題
? 企業(yè)級程序分層
? 構(gòu)建領(lǐng)域的業(yè)務(wù)分層
?
?
?
? 構(gòu)建用戶界面 將內(nèi)存模塊影謝到關(guān)系型數(shù)據(jù)表 在無狀態(tài)下處理會話狀態(tài) 分布原則
系統(tǒng)架構(gòu):
架構(gòu)是專家級項目開發(fā)人員對系統(tǒng)設(shè)計的一些可以共享的理解。這種理解可以表現(xiàn)為系統(tǒng)主要部分組成部分及這些部分的之間的交互關(guān)系。
企業(yè)應(yīng)用的特點
1.數(shù)據(jù)持久:程序多次運行都必須用到他們。
2.大容量存儲:巨大的數(shù)據(jù)量導(dǎo)致數(shù)據(jù)的管理成為系統(tǒng)的主要工作
3.多人同時訪問:要確保多人正確的訪問數(shù)據(jù)就一定存在問題。即使人數(shù)不多要確保2個人同時操作同一數(shù)據(jù)項也可能存在問題。(事務(wù)管理工具可以處理以上問題但對開發(fā)者不透明)
4.存在大量用戶操作界面
5.很少有單獨存在的一般與其他周邊系統(tǒng)相互集成關(guān)于性能
1.響應(yīng)時間:系統(tǒng)完成一次外部請求的時間。響應(yīng)性是系統(tǒng)的一個重要指標(biāo)它表明系統(tǒng)響應(yīng)請求的速度。如果響應(yīng)性太慢用戶難以忍受。盡管響應(yīng)時間不慢。如果在處理請求期間系統(tǒng)一直處于等待狀態(tài),則系統(tǒng)的響應(yīng)時間與響應(yīng)性是相同的,然而如果在處理完成之前給出一些信息表明系統(tǒng)已經(jīng)接受到請求則響應(yīng)性會好些
2.等待時間:是獲取系統(tǒng)響應(yīng)的最小時間。
3.吞吐率:給定時間內(nèi)能夠處理的最大的請求數(shù)。對于企業(yè)應(yīng)用來說通常用每秒事務(wù)數(shù)(tps)來度量。該指標(biāo)依賴于事務(wù)的復(fù)雜的程度
4.負(fù)載:系統(tǒng)當(dāng)前負(fù)荷的表述。可以用當(dāng)前有多少用戶連接來表述。負(fù)載也可以作為其他指標(biāo)的參造。
5.負(fù)載敏感:響應(yīng)時間隨負(fù)載變化的程度.(可用衰減來表述)
6.容量:最大有效負(fù)載或吞吐量的指標(biāo)。它可以是一個絕對最大值或性能衰減至低于一個可以接受的一個值之前的臨界點
7.可伸縮性:度量向一個系統(tǒng)中增加資源(一般理解為硬件)對系統(tǒng)資源的影響。一個可伸縮的系統(tǒng)允許在增加新的硬件后能夠提高若干性能。垂直伸縮性指的是提高單個服務(wù)器的性能。水平伸縮性指的是增加服務(wù)器的個數(shù)。在企業(yè)應(yīng)用中關(guān)注硬件的可伸縮性比關(guān)注容量和效率更重要。
系統(tǒng)分層
用分層觀點來考慮系統(tǒng)時可將各子系統(tǒng)按多層蛋糕的形式來組織,每層都依賴其下層之上。在這種組織上上層使用其下層定義的服務(wù),下層對上層一務(wù)所知。寧外每一層對其上層仍長 其下層的細(xì)節(jié)。
分層的好處:
1.在無需了解其他層次的基礎(chǔ)上可以將某一層作為一個有機整體來理解。
2.可以替換某層具體實現(xiàn)。只要提供服務(wù)相同即可。
3.可以講層次的依賴性減低到最低。
4.分層有利于標(biāo)準(zhǔn)化工作
分層的缺點
1.層次不能封裝所有的東西有時帶來聯(lián)級修改。
2.過多的層次影響性能
3.很難決定建立那些層次及層次的職責(zé)
分層的歷史
20世紀(jì)90年以前沒有分層
20世紀(jì)90服務(wù)器|客戶端系統(tǒng):這種系統(tǒng)2個層次客戶端包括用戶界面和其他應(yīng)用代碼。服務(wù)器端基本上為關(guān)系型數(shù)據(jù)庫。這種方式將業(yè)務(wù)邏輯寫在客戶端顯得十分笨拙不易重用。其二:將業(yè)務(wù)邏輯寫到服務(wù)器上作為存儲過程。但是存儲過程只提供有限的結(jié)構(gòu)化機制這將再次導(dǎo)致結(jié)構(gòu)笨拙。關(guān)系型數(shù)據(jù)庫重要特點是標(biāo)準(zhǔn)sql,允許更換不同的關(guān)系型數(shù)據(jù)庫。單存儲過程是各個數(shù)據(jù)庫廠商私有的不能兼容。在服務(wù)器|客戶端普及的時期出現(xiàn)面向?qū)ο蠓绞?。面向?qū)ο鬄轭I(lǐng)域邏輯的問題找到答案:轉(zhuǎn)向多層結(jié)構(gòu)。在這個結(jié)構(gòu)下表現(xiàn)層表現(xiàn)為用戶界面。在領(lǐng)域?qū)颖憩F(xiàn)領(lǐng)域邏輯,在數(shù)據(jù)層存取數(shù)據(jù)。這種方式將復(fù)雜的業(yè)務(wù)邏輯獨立出來單獨放入中間層可以加以建模和組織。
三個基本層次
1.表現(xiàn)層:提供服務(wù)、顯示信息。處理用戶與軟件的交互。主要職責(zé)是向用戶顯示信息并
從用戶那里獲取信息理解解釋為領(lǐng)域?qū)踊驍?shù)據(jù)層上的動作。
2.領(lǐng)域?qū)樱合到y(tǒng)業(yè)務(wù)邏輯。它是應(yīng)用必須做的所有領(lǐng)域工作:包括根據(jù)輸入數(shù)據(jù)或已有的數(shù)據(jù)進(jìn)行計算。對從表現(xiàn)層輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)有效的認(rèn)證以及根據(jù)從表現(xiàn)層接受的命令調(diào)度那些數(shù)據(jù)層資源。
3.數(shù)據(jù)源層:與數(shù)據(jù)庫、消息系統(tǒng)、事務(wù)管理器及其他軟件通訊。主要關(guān)注與其他系統(tǒng)的交互。這些系統(tǒng)將代表應(yīng)用完成相關(guān)的任務(wù)。對大多少企業(yè)應(yīng)用來說就是數(shù)據(jù)庫。主要永久存儲數(shù)據(jù)。
層次的表現(xiàn)形式:
1.領(lǐng)域?qū)訉Ρ憩F(xiàn)層完全影廠。
2.表現(xiàn)層對數(shù)據(jù)源層直接操作。
表現(xiàn)層可以解釋用戶的命令通過數(shù)據(jù)源層將相關(guān)數(shù)據(jù)從數(shù)據(jù)庫中提出來讓領(lǐng)域?qū)釉谙蛴脩麸@示前作相關(guān)的處理
表現(xiàn)層可能與數(shù)據(jù)源層一樣出現(xiàn)很多接口。因為他們都是可能是系統(tǒng)的外部接口它就是
【wiki】模式的背后邏輯:它將任何系統(tǒng)都視為由到外部系統(tǒng)的接口。
分層的普遍原則:領(lǐng)域?qū)踊驍?shù)據(jù)層絕對不依賴于表現(xiàn)層。也就是說在領(lǐng)域?qū)雍蛿?shù)據(jù)層代碼中部要出現(xiàn)調(diào)用表現(xiàn)層代碼。這條規(guī)則簡化在相同基礎(chǔ)上替換表現(xiàn)層的代價。也使表現(xiàn)層的修改帶來的連鎖反應(yīng)盡可能的小。
如何區(qū)分領(lǐng)域邏輯: 假想向系統(tǒng)中新增一個完全不同的新層次,如果需要重復(fù)實現(xiàn)某項功能則說明該功能是本該在領(lǐng)域?qū)訉崿F(xiàn)。
領(lǐng)域邏輯的組織
組織領(lǐng)域邏輯的三種模式:事務(wù)腳本、領(lǐng)域模式、表模塊。
1.事務(wù)腳本:保存領(lǐng)域模式的最簡單的方式。它從表現(xiàn)層獲取輸入、進(jìn)行校驗證、計算處
理、將數(shù)據(jù)保存到數(shù)據(jù)庫中、以及調(diào)用其他系統(tǒng)的操作等。然后該過程將更多的數(shù)據(jù)返回給表現(xiàn)層?;镜慕M織方式是讓每個過程對應(yīng)用戶的可能做的一個動作。
優(yōu)點:大多數(shù)人都能理解的簡單過程
能夠使用行數(shù)據(jù)入口或表數(shù)據(jù)入口
很容易表述事務(wù)的邊界
缺點:
當(dāng)如干事務(wù)需要做相類似的操作時通常腳本里包含相同的代碼。通過這些相同的代碼可以組成公共函數(shù)可以消除次現(xiàn)象,但在很多時候消除副本或檢測副本都困難這樣使得程序結(jié)構(gòu)不清晰。
領(lǐng)域模式:在整個過程中不是由一個過程來完成某一業(yè)務(wù)邏輯,而是在過程中產(chǎn)生若干對象由每個對象都承擔(dān)一部分相關(guān)邏輯。
表模塊:它與領(lǐng)域模式類似。關(guān)鍵區(qū)別在與領(lǐng)域模式對數(shù)據(jù)表中的每條記錄有一個相應(yīng)的實例而表模式只要一個綜合實例。它是事務(wù)腳本與領(lǐng)域模式的一個中間者,它圍繞表而非直接圍繞過程組織領(lǐng)域邏輯,提供更多的結(jié)構(gòu)、而且更容易發(fā)現(xiàn)冗余代碼。它最大的優(yōu)點就是與軟件架構(gòu)中已有的部分銜接。