Time of Update: 2018-12-06
學習設計模式很重要,這個我們大家都是很清楚的。下面我想談談自己對於設計模式的一些觀點。“模式”一詞其意有多種解釋。“模”,古書《說文》中解釋:“模,法也。按,水曰法,木曰模,土曰型,金曰鎔,竹曰笵。”;“式”意為“示範,榜樣”。由此可見,“模式”一詞中文意思可解釋為事物的標準樣式和方法。國外對“模式”也做出了自己的解釋。建築大師Christopher
Time of Update: 2018-12-06
從學習設計模式到現在有3個月了,原計劃2個月學完,因為這段時間工作比較忙有所耽擱,所以直到現在才把書和視頻啃完。經過這段時間的學習,學到了很多東西,主要是對OO有了更多的認識,以前的的認識不過是語言層面的,而現在在設計層次有了更多認識。李建忠老師的視頻真的很有用,之前看設計模式這本書都是霧裡看花,不是看得很清楚,理解也不到位,甚至覺得很苦澀,通過他視頻的重新梳理,回過頭來理解設計模式這本書的內容來是如此的輕鬆!這也使我真正體會到了這本書的巨大價值,他沒有提供很多實際性的例子,但是
Time of Update: 2018-12-06
1. 查詢最佳化工具簡介 2. 顯示執行計畫 3. 分析執行計畫 4.關於效能最佳化的幾個常用命令 1.查詢最佳化工具簡介 處理查詢所涉及的最重要最複雜的組件是查詢最佳化工具,最佳化器的任務是為批處理或預存程序中的每個查詢產生高效的執行計畫,執行計畫列出了sql
Time of Update: 2018-12-06
動機:將一組行為抽象為對象,實現行為要求者和行為實現者之間的解耦,並且支援對行為進行記錄、撤銷、重做、事務等處理。情境:考慮一系列文檔操作:開啟、複製、剪下、粘帖。結構代碼實現/**//* * 行為實現者*/namespace DesignPattern.Command{ public class Application { public void OpenDocument() { } }}/**//* * 行為實現者*/namespa
Time of Update: 2018-12-06
幸運,我是他一個被遺忘在角落的孩子,而今天,他第一次光顧了我,很意外。 為了買到細寶寶一直想念的冰箱,今天淩晨2點就起床了,備好水和乾糧,我們和2個朋友直奔蘇寧正佳店,想趕個早,佔據有利地形,也分享下所謂的市利。到廣場一看,似乎沒點動靜,再往前一走,原來還有比我們早的哦,已經有二三十個人在排隊了,前面有個牌子寫著抽獎什麼的,第一次趕早,不懂,呵呵,於是我們也就跟著排了起來。在聊天中,我們逐漸瞭解到前面一個哥們是高人,他說參加這樣的活動十幾次了,告訴我們是怎麼樣一個流程,原來這個
Time of Update: 2018-12-06
我們知道統計資訊會直接決定關聯式引擎產生何種執行計畫,這篇文章通過示範2個例子像大家展示1、統計資訊對串連方式的影響2、統計資訊對單表資料擷取方式的影響以下內容是我曾經做過的一次培訓內容,測試環境是SQLServer 2008 R2。如果你還不明白什麼是統計資訊,請點這裡先來看下統計資訊對串連方式的影響,首先建立一個測試DB,並將“自動建立統計資訊”和“自動更新統計資訊”設定成OFF,然後運行一下代碼建立相關表和寫入記錄CREATE TABLE CHECK2_T1( ID INT,
Time of Update: 2018-12-06
動機:在軟體系統構建過程中,集合對象內部結構常常變化各異。希望在不暴露其內部結構的同時,可以讓客戶程式透明地訪問其中包含的元素,同時這種“透明遍曆”也為“同一種演算法在多種集合對象上進行操作”提供了可能。情境:在.NET類庫中,IEnumerable即為彙總對象介面,IEnumerator為迭代器介面,通過實現這兩個介面來實現迭代器。結構代碼namespace DesignPattern.Iterator{ public class MyCollection : IEnumerable
Time of Update: 2018-12-06
上一篇文章 統計資訊對執行計畫的影響(一) 示範了統計資訊對串連方式的影響,這一篇將給大家示範統計資訊對單表資料擷取方式的影響在上次的測試DB上執行以下代碼建立測試表及插入資料--建立測試表CREATE TABLE CHECK2_T3( ID INT, COL1 CHAR(800), COL2 INT, COL3 CHAR(5000))---向表中插入資料BEGIN TRANDECLARE @I INT,@COL1 CHAR(1)=''SET @I=1WHILE @
Time of Update: 2018-12-06
昨天是一個值得慶祝的日子,媽媽出院了。昨天晚上忙著看紀錄片《圓明園》,所以沒寫下什麼。 到現在還記得95年的那個夏天,我住在姐姐家,後來媽媽住院了,得了風心病,當時插了氧氣,很嚴重。到冬天的時候媽媽去長沙動二尖瓣擴充手術,當時我還在讀初二,因為太小吧,家裡人也沒對我說,我只知道那陣子是姐姐和姐夫在家。到快過年的時候,媽媽回來了,是村上的人用擔架抬回來的,看得出,她身體很虛弱。一天天過去,媽媽的身體開始恢複,漸漸開始了正常人的生活。 時間過得真快,轉眼到了2003,媽媽的
Time of Update: 2018-12-06
動機:在系統構建過程中,經常出現多個對象相互關聯互動的情況,對象之間常常會維持一種複雜的參考關聯性,面對變化能力弱。用一個中介對象來封裝一系列的對象互動,中介者使各對象不需要顯式的相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的變化。 情境:考慮一個文字編輯器,包含剪下菜單、粘帖按鈕、文本編輯地區、剪貼簿等對象,它們需要相互引用和互動。結構代碼namespace DesignPattern.Mediator{ public abstract class Mediator {
Time of Update: 2018-12-06
ASP.NET伺服器控制項開發技術與執行個體(1CD)
Time of Update: 2018-12-06
從來沒想過自己會去看演唱會,而且是同一個人的看兩次,這個想法太瘋狂了。也許6月22日佛山演唱會太震撼,留下了太多美好的回憶,讓我蠢蠢欲動,12月29日再瘋狂了一把。就如今天在網易上,看到一個網友說她現在理解了為什麼美國人看演唱會會昏厥,雖然有點誇張的說法,畢竟楊麗娟還是很少的。毫無疑問,對每個觀眾來說,都是一段美好的回憶,有感動、有震撼,也有對過去時光的懷戀。
Time of Update: 2018-12-06
動機:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣就可以將該對象恢複到原先儲存的狀態。情境:此處以圖形系統為例,圓為原發器,該系統對圓進行處理,並儲存可恢複狀態序列。結構圖代碼namespace DesignPattern.Memento{ /**//// <summary> /// 原發器 /// </summary> public class Round { private Point
Time of Update: 2018-12-06
動機:允許一個對象在其內部狀態改變時改變它的行為。從而使對象看起來似乎修改了其行為。情境:檔案具有唯讀、讀寫狀態,在不同狀態時進行的操作不同。結構代碼namespace DesignPattern.State{ public class File { private FileState state; public File(FileState state) { this.state = state; }
Time of Update: 2018-12-06
轉載:Sql Server 中一個非常強大的日期格式化函數Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3):
Time of Update: 2018-12-06
動機:定義一系列演算法,把它們一個個封裝起來,並且使它們可互相替換。該模式使得演算法可獨立於使用它的客戶而變化。情境:設計一個自動投票程式,根據常用投票對象的計票策略不同,定義一系列不同自動投票策略,可根據投票對象策略選用適當的自動投票策略。結構代碼namespace DesignPattern.Strategy{ public interface IVoteStrategy { void Vote(); // 統計投票情況 void Sta
Time of Update: 2018-12-06
1. 委託簡介 2. 委託組合與分解 3. 泛型委派 4.匿名方法和Lambda運算式 1.委託簡介說來慚愧,做開發也有好幾年了,但對委託依然一知半解,項目中也很少用到,這周在家仔細的看了下,寫了點心得體會。.net framework 基底類別庫大量地使用了委託,那麼什麼是委託呢?大家熟悉的常用資料類型(如int)的使用方法:先定義一個變數,然後給他賦值,如Int
Time of Update: 2018-12-06
動機:表示一個作用於某對象結構中的各元素的操作。它可以在不改變各元素的類的前提下定義作用於這些元素的新的操作。情境:圖形系統,假設其映像種類穩定,而其可提供的操作變化。結構代碼namespace DesignPattern.Visitor{ public abstract class Shape { public abstract void Draw(); // 第二次分發 public abstract void Accept(ShapeV
Time of Update: 2018-12-06
昨天還跟老蔣討論散夥飯,什麼是散夥飯?老蔣說:散夥飯是一種回味與總結,就像宗教一樣吃過了才算圓滿,人生某一時間段的曆程才算結束。才可以有下一次的重新開始。 散夥飯聽起來有些凝重,因為相聚,不容易。散了之後再相聚,更加不易。用穆昕的話說:離開一個圈子有些人可能一輩子都不會見到,有些人過了幾年說不定還會再次相見。 這種論調似乎有些消極,但是,這卻是事實。 今天團隊一起去吃散夥飯,古美路自助烤肉店。
Time of Update: 2018-12-06
1. 程式的同步執行和非同步執行 2. 等待非同步呼叫的完成 3.非同步呼叫中的異常 4.實現IAsyncResult非同步呼叫模式的組件 1.程式的同步執行和非同步執行在許多程式中代碼是順序執行的,如果在代碼中調用了一個方法,則必須等待此方法所有的代碼執行完畢之後,才能回到原來的地方執行下一行代碼,這種程式運行方式稱為同步樣本程式class Program { static void Main(string[] args) {