概述: 用中介對象來封裝一系列的對象互動。中介者使各對象不需要顯示地相互引用,從而使其耦合鬆散,而且可以對立地改變他們之間的互動。適用場合:
概述: 享元模式(Flyweight):運用共用技術有效地支援大量細粒度的對象。適用場合:
概述: 訪問者模式(Visitor),表示作用於某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素新的操作。適用場合:
小言:這不是設計模式講解型博文,以下將設計模式的概述、類圖,程式碼範例,總結分每篇博文單獨展示,現將其歸類,便於以後翻閱,設計模式也不是一兩個月學完了就能完全領悟,它只告訴我們幾個解決問題的思路和方法,將具體問題抽象為模型的思想,武功也是,套路需要學,但是基本功(如馬步、力量,毅力,抗打擊能力)絕對不可或缺,在學習設計模式的同時更需要看看資料結構和演算法方面的基礎東東。設計模式不是銀彈,如果非要用降龍十八掌對付一隻螞蟻不是一個好想法。本人也是學藝不精,整理當中難免有錯誤,希望在大家的批評指正,共
自己平時用得比較多tab功能,網上有很強大的tab功能,但是很多時候太過於複雜,所以自己寫了一個最簡單的jquery外掛程式,代碼如下,就不解釋了。/* * jqpressToos1.0 * * Copyright (c) 2011 yepeng * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. **/$.fn.extend({//外掛程式名稱:Tab選項卡
概述: 迭代器模式(Iterator):提供一種方法順序一個彙總對象中各個元素,而又不暴露該對象內部表示。實用場合:
概述: 將抽象部分與它的實現部分分離,使他們都可以獨立的變化。使用場合:
第一個代碼檔案View Code public class DomainRoute : Route {private Regex domainRegex;private Regex pathRegex;public string Domain { get; set; }public DomainRoute(string domain, string url, RouteValueDictionary defaults) : base(url, defaults,
對比了一下nopcommerce和orchard的計劃任務,orchard的複雜的不是一點點,如果想拆下來自己用難度很大,搜尋拆了orchard的lucene處理模組,郵件隊列拆的discuznt和nopcommerce的結合,計劃任務就拆nopcommerce的了,discuznt計劃任務設計的沒nopcommerce的好。1.nopcommerce的tasks結構如下:IScheduleTaskService.cs
概述: 將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。適用場合:
nopcommerce外掛程式機制是相當優秀的,所以就分析一下然後拿來所用,整合到自己的網站架構裡。寫篇小文記錄一下。不足和錯誤之處還望指正,nop版本2.51.Nop.Core.Plugins核心檔案夾檔案目錄: 這裡面是Plugins的基類檔案夾,實現外掛程式機制的核心部分。IPluginFinder.cs介面:擷取外掛程式的資訊介面,在ioc裡的Nop.Web.Framework.DependencyRegistrar註冊此介面。系統啟動的時候會載入到記憶體裡。//pluginsbuild
園子裡大部分是做.net開發的,用lucene.net的同學不少吧,但是目前最新版本的還是2.9.4,而java版的4.0beta都出來了,有點不爽,.net的開源項目實在是不敢恭維,不過好歹lucene.net的官方開發人員在8月14號跟apache組織溝通成功,沒有撤掉這個項目把這個在孵化器裡呆了好幾年的項目放出來了,正式成為apache組織的一部分,3.0後的版本,官方開發人員會在最近一段時間(多長?)開放3.0的svn,不過好歹有總比沒有強,湊合用吧,畢竟人家Stackoverflow也
概述: 使多個對象都有機會處理請求,從而避免請求的寄件者和接受者之間的耦合關係。將這些對象連成一條鏈。並沿著這條鏈傳遞該請求,直到有一個對象處理它為止。這一模式的想法是,給多個對象處理一個請求的機會,從而解耦寄件者和接受者。適用場合:
mvc3的實際應用時間還是不長,有些東西正在摸索當中,項目是多使用者多模版店鋪,以下為實際開發過程中的解決辦法,感覺解決方案不是最好的,但是目前只能想到這些,希望園裡的大牛們給點建議。1.項目解決方案的目錄結構。Syw.Core主要放實體類及依賴注入的程式及外掛程式和資料提供者。Syw.Data.SqlServer完全是一大堆sql,實現Syw.Core裡的IData類。對orm我沒深入使用過,還是覺得最大程度的控制我的sql比較放心,所有的集合都是List或者Ilist類型的。Syw.Serv
首先承認,我不是牛人,並且距牛人也差的很遠。雖然有三年多的.Net開發經驗和若干年的Front-End開發經驗,但是對於.Net,當然也可以說是C#,瞭解的並不多。由於所在公司的原因,我在從第一家軟體公司跳槽後基本就是處於吃老本的姿態。因為對於我現在的公司而言,項目的穩定性是第一位的,至於Project架構的如何合理,Code寫的多美,設計模式用的多精妙,頁面是不是標準化,我們的老大完全不Care,也就是說,代碼可維護性第三位,效能第二位,穩定第一位。而且有點很讓我鬱悶,對於新技術,能不用就
使用多態替換條件:指在進行類型檢查和執行某些類型操作時,最好將演算法封裝在類中,並且使用多態來對代碼中的調用進行抽象舉例理解:看定義可能比較迷糊,其實說的簡單一點,對於使用分支語句並且分支條件是和類型檢查相關的程式段,如 if(type == typeof(TypeA)){...}else if(type ==
提取介面:當有多餘一個類使用另外一個類中的方法時,可以考慮引入介面,解除這種依賴。舉例理解:比如說類A中有個方法為Call(Type
提取工廠類:使用一個簡單工廠類來建立對象執行個體。舉例理解:對於一個用戶端事件,我們可能需要初始化一個對象執行個體,並調用其中的幾個方法做一系列的操作。如果用戶端事件經常需要擴充,那可能每次初始化的對象執行個體可能都是不同的,那麼為了把這個初始化對象的動作封裝起來,為了使這個行為更加便於維護,我們就需要把初始化對象的動作交給簡單工廠類來統一完成。項目執行個體:做過一個小型的購物商城。其中有個需求簡述如下:管理員可以通過後台自助增刪改當前商品的打折比例和打折類型。一開始我們想的都很簡單,以為使用
&g 劃分職責:根據方法實現的邏輯來安排方法所在的類。 舉例理解:這個重構的方法是對單一職責原則(SRP)的貫徹,在Coding的時候,我們不僅僅需要把方法中的邏輯單一化(主要使用 Extract