設計模式–中介者模式(Mediator)

中介者模式概述 用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。適用性 1.一組對象以定義良好但是複雜的方式進行通訊。產生的相互依賴關係結構混亂且難以理解。 2.一個對象引用其他很多個物件並且直接與這些對象通訊,導致難以複用該對象。 3.想定製一個分布在多個類中的行為,而又不想產生太多的子類。參與者 1.Mediator

設計模式–備忘錄模式(Memento)

備忘錄模式概述 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。適用性 1.必須儲存一個對象在某一個時刻的(部分)狀態,這樣以後需要時它才能恢複到先前的狀態。 2.如果一個用介面來讓其它對象直接得到這些狀態,將會暴露對象的實現細節並破壞對象的封裝性。參與者 1.Memento 備忘錄儲存原發器對象的內部狀態。 2.Originator

即時記憶體資料庫的資料管理

文章目錄 實 時 數 據 安 置 實 時 內 存 數 據 庫 技 術 實 時 數 據 庫 的 數 據 組 織 實 時 內 存 數 據 庫 的 數 據 裝 入 與 交 換 實 時 內 存 數 據 庫 的 故 障 恢 複 實 時 數 據 安 置  ----1 . 實 時 應 用 對 數 據 安 置 的 要 求 ---- 在 實 時 應 用 中, 事 務 在 運 行 前 的 操 作 邏 輯( 操 作 類 型、 順 序 等)、 數 據 集 及

設計模式–狀態模式(State)

狀態模式概述 定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。適用性 1.一個對象的行為取決於它的狀態,並且它必須在運行時刻根據狀態改變它的行為。 2.一個操作中含有龐大的多分支的條件陳述式,且這些分支依賴於該對象的狀態。 這個狀態通常用一個或多個枚舉常量表示。 通常,有多個操作包含這一相同的條件結構。 State模式將每一個條件分支放入一個獨立的類中。

設計模式–策略模式(Strategy)

策略模式概述 定義一系列的演算法,把它們一個個封裝起來,並且使它們可相互替換。本模式使得演算法可獨立於使用它的客戶而變化。適用性 1.許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。 2.需要使用一個演算法的不同變體。 3.演算法使用客戶不應該知道的資料。可使用原則模式以避免暴露複雜的、與演算法相關的資料結構。 4.一個類定義了多種行為,並且這些行為在這個類的操作中以多個條件陳述式的形式出現。

PO BO VO DTO POJO DAO概念及轉換圖

    J2EE開發中大量的專業縮減語很是讓人迷惑,尤其是跟一些高手討論問題的時候,三分鐘就被人家滿口的專業術語噴暈了,PO VO BO DTO POJO DAO,一大堆的就來了.    首先聲明偶也不是什麼高手,以下總結都是自己的體會。不對之處請您多指教。PO:persistant object持久對象最形象的理解就是一個PO就是資料庫中的一條記錄。好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。BO:business

uml類圖定義的關係

uml定義的關係主要有六種:依賴、類屬、關聯、實現、彙總和組合。下面對其定義和表示方法逐一說明。 依賴(Dependency):元素A的變化會影響元素B,但反之不成立,那麼B和A的關係是依賴關係,B依賴A;類屬關係和實現關係在語義上講也是依賴關係,但由於其有更特殊的用途,所以被單獨描述。uml中用帶箭頭的虛線表示Dependency關係,箭頭指向被依賴元素。 類屬(Generalization):通常所說的繼承(特殊個體 is kind of

設計模式–模版方法(TemplateMethod)

模板方法概述 定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。 TemplateMethod使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。適用性 1.一次性實現一個演算法的不變的部分,並將可變的行為留給子類來實現。 2.各子類中公用的行為應被提取出來並集中到一個公用父類中以避免代碼重複。 首先識別現有代碼中的不同之處,並且將不同之處分離為新的操作。 最後,用一個調用這些新的操作的模板方法來替換這些不同的代碼。

設計模式–訪問者模式(Visitor)

訪問者模式概述 表示一個作用於某對象結構中的各元素的操作。 它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。適用性 1.一個對象結構包含很多類對象,它們有不同的介面,而你想對這些對象實施一些依賴於其具體類的操作。 2.需要對一個對象結構中的對象進行很多不同的並且不相關的操作,而你想避免讓這些操作“汙染”這些對象的類。 Visitor使得你可以將相關的操作集中起來定義在一個類中。

設計模式–抽象工廠(AbstractFactory)

抽象工廠概述 提供一個建立一系列相關或相互依賴對象的介面,而無需指定它們具體的類。適用性 1.一個系統要獨立於它的產品的建立、組合和表示時。 2.一個系統要由多個產品系列中的一個來配置時。 3.當你要強調一系列相關的產品對象的設計以便進行聯合使用時。 4.當你提供一個產品類庫,而只想顯示它們的介面而不是實現時。參與者 1.AbstractFactory 聲明一個建立抽象產品對象的操作介面。 2.ConcreteFactory

資料庫設計指南(二)設計表和欄位

設計表和欄位1. 檢查各種變化我在設計資料庫的時候會考慮到哪些資料欄位將來可能會發生變更。比方說,姓氏就是如此(注意是西方人的姓氏,比如女性結婚後從夫姓等)。所以,在建立系統儲存客戶資訊時,我傾向於在單獨的一個資料表裡儲存姓氏欄位,而且還附加起始日和終止日等欄位,這樣就可以跟蹤這一資料條目的變化。— Shropshire Lad2.

設計模式–裝飾模式(Decorator)

裝飾模式概述 動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比產生子類更為靈活。適用性 1.在不影響其他對象的情況下,以動態、透明的方式給單個對象添加職責。 2.處理那些可以撤消的職責。 3.當不能採用產生子類的方法進行擴充時。參與者 1.Component 定義一個對象介面,可以給這些對象動態地添加職責。 2.ConcreteComponent 定義一個對象,可以給這個對象添加一些職責。

設計模式–享元模式(Flyweight)

享元模式概述 運用共用技術有效地支援大量細粒度的對象。適用性 當都具備下列情況時,使用Flyweight模式: 1.一個應用程式使用了大量的對象。 2.完全由於使用大量的對象,造成很大的儲存開銷。 3.對象的大多數狀態都可變為外部狀態。 4.如果刪除對象的外部狀態,那麼可以用相對較少的共用對象取代很多組對象。 5.應用程式不依賴於對象標識。由於Flyweight對象可以被共用,對於概念上明顯有別的對象,標識測試將返回真值。參與者

資料庫設計指南(一)設計之前

設計資料庫之前1. 考察現有環境在設計一個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫項目都不是從頭開始建立的;通常,機構內總會存在用來滿足特定需求的現有系統(可能沒有實現自動計算)。顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究可以讓你發現一些可能會忽略的細微問題。一般來說,考察現有系統對你絕對有好處。— Lamont Adams我曾經接手過一個為地區運輸公司開發的資料庫專案,活不難,用的是Access

SQL in和exists 比較

今天資料庫的課上老師問了個問題說in和exists哪個效率高。這我倒真沒研究過只知道in加子查詢效率低,但平時還不時在用。所以我就總結下他們之間的區別 SQL中in可以分為三類:  1、形如select * from t1 where f1 in ('a','b'),應該和以下兩種比較效率  select * from t1 where f1='a' or f1='b'  或者 select * from t1 where f1 ='a' union all select * from t1

設計模式–命令模式(Command)

命令模式概述 將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支援可撤消的操作。適用性 1.抽象出待執行的動作以參數化某對象。 2.在不同的時刻指定、排列和執行請求。 3.支援取消操作。 4.支援修改日誌,這樣當系統崩潰時,這些修改可以被重做一遍。 5.用構建在原語操作上的高層操作構造一個系統。參與者 1.Command 聲明執行操作的介面。 2.ConcreteCommand

神奇的HTML5畫圖應用

Dzone上有一篇名為:Amazing HTML5 paint app 的文章,受到了很多人的關注。文中只有一句話“Sorry Adobe Flash, your days are numbered”(Adobe Flash,你的死期將至)。也許你會想,IE 壓根就不支援HTML5!那是因為你不知道有explorercanvas(HTML5 Canvas for InternetExplorer) 的存在,它能讓IE支援HTML5。點擊查看Demo(效果確實很不錯):http://mugtug.

設計模式–解譯器模式(Interpreter)

解譯器模式概述 給定一個語言,定義它的文法的一種表示,並定義一個解譯器,這個解譯器使用該表示來解釋語言中的句子。適用性 當有一個語言需要解釋執行,並且你可將該語言中的句子表示為一個抽象文法樹時,可使 用解譯器模式。而當存在以下情況時該模式效果最好: 1.該文法簡單對於複雜的文法,文法的類層次變得龐大而無法管理。 2.效率不是一個關鍵問題最高效的解譯器通常不是通過直接解釋文法分析樹實現的,而是首先將它們轉換成另一種形式。參與者

網站成功的三十三個法則

1、 你的網站提供的內容是不是網民現在需要的內容?是不是能逐漸引導網民接受的內容?這是網站的需求分析。 2、 你的網站給哪一類人群看?這一類人群有哪些共同特徵?這是網站的市場細分? 3、你的網站目標市場有多大規模、是否成熟、未來前景發展如何?你是否有能力滿足市場需求並獲得目標利潤?這是網站的目標市場評估。 4、 你的網站所在行業未來會有那些政策和環境變動,會有哪些競爭者出現?這是網站的市場預測。 5、如何向你的目標使用者展示你的網站和其他同行網站的區別?你準備在目標使用者心目中樹立什麼樣的形象?

編寫HTML的一些小技巧(針對IE)

文章目錄 相關連結 相關連結常用的JS屏蔽功能(右鍵、查看源檔案、複製、剪下、粘貼、後退、F1、F5、Ctrl+N、Shift+F10、Alt+F4) <!--頁面定時重新整理,單位為秒 --><meta http-equiv="Refresh" content="60"><!-- 頁面定時轉向新的地址,單位為秒 --><meta http-equiv="refresh"

總頁數: 61357 1 .... 12705 12706 12707 12708 12709 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.