成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

第十一天-《企業(yè)應(yīng)用架構(gòu)模式》-對象-關(guān)系行為模式

KavenFan / 3111人閱讀

摘要:工作單元用于維護(hù)受業(yè)務(wù)事務(wù)影響的對象列表,并協(xié)調(diào)變化的寫入和并發(fā)問題的解決。工作單元控制器工作單元控制所有數(shù)據(jù)庫的讀操作,一旦對象被讀取,將將它注冊為干凈的對象。

1. 工作單元

用于維護(hù)受業(yè)務(wù)事務(wù)影響的對象列表,并協(xié)調(diào)變化的寫入和并發(fā)問題的解決。如下:

1)運行機(jī)制: 關(guān)鍵:

是提交時,決定要做什么。它打開一個事務(wù),做所有的并發(fā)檢查(使用悲觀離線鎖或樂觀離線鎖)并向數(shù)據(jù)庫寫入所做的修改。(開發(fā)人員根本不用顯示調(diào)用數(shù)據(jù)庫更新方法)

記錄對象更新的方法:

調(diào)用者注冊方式:用戶如果改變了某個對象就必須將他注冊到工作單元,任何沒有注冊的對象提交時都不會寫入數(shù)據(jù)庫。

 
      

對象注冊方式:注冊方法置于對象中,從數(shù)據(jù)庫加載對象會將加載的對象注冊為“干凈”的,setting方法將要設(shè)置的對象注冊為“臟”的。

 
       

工作單元控制器:工作單元控制所有數(shù)據(jù)庫的讀操作,一旦對象被讀取,將將它注冊為“干凈”的對象。工作單元在讀操作時將產(chǎn)生一個拷貝,在提交時比較當(dāng)前對象和拷貝對象(這種的辦法是指發(fā)生改變的對象),看對象是否發(fā)生了改變。

 
       

用途:數(shù)據(jù)庫(使用引用完整性時保證更新順序、批量更新)、事務(wù)資源(調(diào)整消息隊列、事務(wù)監(jiān)控)

.Net環(huán)境工作單元實現(xiàn):使用無連接的數(shù)據(jù)集,每一行都有版本(當(dāng)前版本、原始版本、建議版本)、狀態(tài)(不變、增加、刪除、修改)概念

2)使用時機(jī):

基本目的:記錄操作過的各種對象,以便知道為了使內(nèi)存中數(shù)據(jù)與數(shù)據(jù)庫同步需要考慮哪些對象。

2. 標(biāo)識映射

通過在映射中保存每個已經(jīng)加載的對象,確保每個對象只加載一次。當(dāng)要訪問對象時,通過映射來查找它們。


  

1)運行機(jī)制:

鍵選擇:

數(shù)據(jù)表主鍵(或其他簡單的數(shù)據(jù)類型)

顯示的還是通用的(如findPerson(1),還是find("Person", 1)?):當(dāng)所有對象鍵類型相同時使用通用的,其他情況下使用顯示的

數(shù)量(單映射、多映射):(沒看明白)

標(biāo)識映射存放位置:有工作單元時,放在工作單元;沒有工作單元時,捆綁到會話的注冊表

2)使用時機(jī):

一般來說,用一個標(biāo)識映射來管理所有修改了的數(shù)據(jù)庫讀出數(shù)據(jù);

作為數(shù)據(jù)庫讀取操作的告訴緩存。

3. 延遲加載

一個對象,它雖然不包含所需要的所有數(shù)據(jù),但是知道怎么獲取這些數(shù)據(jù)

1)運行機(jī)制: 4種實現(xiàn)方法:

延遲初始化:

實現(xiàn)思想:每次訪問屬性域都要先檢查該域是否為空。如果為空,在返回域值之前計算出這個域的值(注意這個域需要自封裝,即便是類的內(nèi)部也只能通過它來訪問)

優(yōu)缺點:簡單,但往往會在對象和數(shù)據(jù)庫間強(qiáng)加依賴關(guān)系

適用場景:活動記錄、表數(shù)據(jù)庫入口、行數(shù)據(jù)入口

虛代理:

定義:虛代理是這樣一個對象,它看起來應(yīng)該是域中的一個對象,但實際上它并不包含任何東西。只有當(dāng)他的一個方法被調(diào)用時,它才從數(shù)據(jù)庫加載適當(dāng)?shù)膶ο?/p>

優(yōu)缺點:看上去完全就是需要的對象,但并不真的是那個對象,容易陷入標(biāo)識問題;同一個實對象,可能有多個不同對象特征的虛代理(需要覆蓋Equals方法,而不用標(biāo)識方法)

適用場景:數(shù)據(jù)映射器

值保持器:

實現(xiàn)思想:要想獲取某對象,可以訪問值保持器得到它的值,但只有第一次訪問值保持器時它才真正從數(shù)據(jù)庫讀取數(shù)據(jù)

優(yōu)缺點:可避免標(biāo)識問題;類需要知道值保持器的存在,喪失強(qiáng)數(shù)據(jù)類型顯式性;

重影:

實現(xiàn)思想:當(dāng)從數(shù)據(jù)庫加載對象時,它只包含其ID。當(dāng)每次要訪問某個域時,它就會加載其完全狀態(tài)(可以把域數(shù)據(jù)分為不同組,按需加載)

延遲加載的問題:

繼承(虛代理、重影,需要知道要創(chuàng)建什么類型的重影或虛對象);

波動加載(產(chǎn)生超出需要的數(shù)據(jù)庫訪問),影響應(yīng)用程序性能(解決辦法:不適用延遲加載集合中的項,但集合整體可以延遲加載)

適用場景:面向方面的程序(將延遲加載置于一個多帶帶的方面,能獨立改變延遲加載策略)

2)使用時機(jī):

最佳時機(jī):需要額外的調(diào)用,并且當(dāng)使用主對象時所調(diào)用的數(shù)據(jù)沒有到的時候(取決于加載一個對象時需要從數(shù)據(jù)庫讀取多少數(shù)據(jù)和數(shù)據(jù)庫調(diào)用的次數(shù))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30066.html

相關(guān)文章

  • 一天-《企業(yè)應(yīng)用架構(gòu)模式》-分層

    摘要:分層優(yōu)缺點優(yōu)點在無需過多了解其他層次的基礎(chǔ)上,可以將某一層作為一個有機(jī)整體來理解可以替換某層的具體實現(xiàn),只要前后提供的服務(wù)相同即可可以將層次間的依賴性減到最低分層有利于標(biāo)準(zhǔn)化工作一旦構(gòu)建好了某一層次,就可以用它為很多上層服務(wù)提供支持缺點層次 1. 分層優(yōu)缺點: 1)優(yōu)點: 在無需過多了解其他層次的基礎(chǔ)上,可以將某一層作為一個有機(jī)整體來理解; 可以替換某層的具體實現(xiàn),只要前后提供的服務(wù)...

    CHENGKANG 評論0 收藏0
  • 三天-《企業(yè)應(yīng)用架構(gòu)模式》-映射到關(guān)系數(shù)據(jù)庫

    摘要:如果數(shù)據(jù)非常類似,可把數(shù)據(jù)從內(nèi)存方案中轉(zhuǎn)化到邏輯數(shù)據(jù)存儲方案,映射從邏輯數(shù)據(jù)存儲方案到實際物理存儲方案第二部包含區(qū)別使用元數(shù)據(jù)元數(shù)據(jù)映射基于把映射濃縮到元數(shù)據(jù)文件的方法。元數(shù)據(jù)文件詳細(xì)描述數(shù)據(jù)庫中列如何映射到對象的域。 關(guān)系數(shù)據(jù)庫之所以取得成功,最重要的原因之一就是SQL的存在,它是數(shù)據(jù)庫通信標(biāo)準(zhǔn)語言。 1. 架構(gòu)模式: 驅(qū)動領(lǐng)域邏輯訪問數(shù)據(jù)的方式: SQL語句嵌入在程序設(shè)計語言中; ...

    chenatu 評論0 收藏0
  • 九天-《企業(yè)應(yīng)用架構(gòu)模式》-領(lǐng)域邏輯模式

    摘要:領(lǐng)域模型應(yīng)當(dāng)使用細(xì)粒度的對象,這些對象應(yīng)有細(xì)粒度的接口。它封裝了應(yīng)用的業(yè)務(wù)邏輯事務(wù)控制及其操作實現(xiàn)中的響應(yīng)協(xié)調(diào)。 1. 事務(wù)腳本 1)調(diào)用數(shù)據(jù)庫: 事務(wù)腳本將所有邏輯組成單個過程,在過程中直接調(diào)用數(shù)據(jù)庫,或者只通過一個簡單的數(shù)據(jù)庫封存器。 2)腳本處理: 每個事務(wù)都有自己的事務(wù)腳本,盡管事務(wù)間的公共子任務(wù)可以被分解成多個子程序。 3)運行機(jī)制: a.事務(wù)腳本應(yīng)該置于與其他處理表現(xiàn)層和數(shù)...

    pinecone 評論0 收藏0
  • 必看!互聯(lián)網(wǎng)開發(fā)模式的經(jīng)驗之談

    摘要:架構(gòu)設(shè)計實體化單元測試敏捷開發(fā)講究要快速的修改代碼,我們往往會發(fā)現(xiàn),代碼修改的越頻繁,越多,這似乎是一個無法解決的矛盾。 本文由云+社區(qū)發(fā)表,作者:韓偉 互聯(lián)網(wǎng)開發(fā)的核心問題 當(dāng)我1999年進(jìn)入互聯(lián)網(wǎng)行業(yè)工作的時候,華為剛剛通過了著名的CMM認(rèn)證。當(dāng)時作為一個小程序員,非常向往業(yè)界經(jīng)典的軟件開發(fā)模式。因為看上去,如果企業(yè)實行了CMM,我們程序員就不用再天天為了老板一個拍腦袋的主意而加班...

    寵來也 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<