重構到模式(1)——宇宙大爆炸:跟If else說再見

 今天的重構沒有固定的形式,多年來我使用過不同的版本,並且我敢打賭不同的人也會有不同的版本。該重構適用於這樣的情境:switch 語句塊很大,並且會隨時引入新的判斷條件。這時,最好使用原則模式將每個條件封裝到單獨的類中。實現策略模式的方式是很多的。我在這裡介紹的策略重構使用的是字典策略,這麼做的好處是調用者不必修改原來的代碼。今天的重構沒有固定的形式,多年來我使用過不同的版本,並且我敢打賭不同的人也會有不同的版本。該重構適用於這樣的情境:switch

分享一個String Replace方法

文章目錄 測試用的String資料測試相關方法具體測試代碼 在上一編 文章裡分享了自訂實現一個高效的String Split方法,接下來同樣分享一下String相關操作的函數Replace.通過反編譯查看String的Replace方法是內建實現無法查看具體

MS SQL的ISQL命令詳解

MS SQL有簡單方便又高效的管理介面,還用ISQL幹什嗎?什麼是ISQL工具?ISQL是用於互動式執行Transact-SQL語句和指令碼的資料庫工具,ISQL同微軟的OSQL是差不多的工具。比如做一些進階的配置,還比如在用戶端或遠程執行資料庫操作等工作時,ISQL是很方便的。比如入侵一台有SQL服務的主機,入侵SQL Server後都能幹什嗎?最好的工具的就是ISQL了。不

sp_addlinkedserver (Transact-SQL)

文章目錄 A. 使用 Microsoft SQL Server Native Client OLE DB 提供者B. 使用 Microsoft OLE DB Provider for Microsoft Access使用 Microsoft OLE DB Provider for OracleD. 將 Microsoft OLE DB Provider for ODBC 與 data_source 參數一起使用E. 將 Microsoft OLE DB

OPENQUERY (Transact-SQL)

文章目錄 A. 執行 SELECT 傳遞查詢B. 執行 UPDATE 傳遞查詢C. 執行 INSERT 傳遞查詢D. 執行 DELETE 傳遞查詢 對給定的連結的伺服器執行指定的傳遞查詢。該伺服器是 OLE DB 資料來源。OPENQUERY 可以在查詢的 FROM 子句中引用,就好象它是一個表名。OPENQUERY 也可以作為 INSERT、UPDATE 或 DELETE 語句的目標表進行引用。但這要取決於 OLE DB

OPENDATASOURCE (Transact-SQL)

不使用連結的伺服器的名稱,而提供特殊的串連資訊,並將其作為四部分對象名的一部分。 Transact-SQL 文法約定  文法 OPENDATASOURCE ( provider_name, init_string )  參數 provider_name 註冊為用於訪問資料來源的 OLE DB 提供者的 PROGID 的名稱。provider_name 的資料類型為

如何產生MachineKey?

如果你的Asp.Net程式執行時碰到這種錯誤:“驗證檢視狀態 MAC 失敗。如果此應用程式由網路場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證演算法。不能在群集中使用 AutoGenerate。”那麼說明你沒有讓你的應用程式使用統一的machineKey,那麼machineKey的作用是什麼呢?按照MSDN的標準說法:“對密鑰進行配置,以便將其用於對 Forms 身分識別驗證 Cookie

PowerDesigner + 反向工程 + 資料字典

操作步驟:1. 開啟 PowerDesinger 12.1。2. 開啟 File--Reverse Engineer--Database。3. 在New Physical Data Model中選擇資料庫驅動。設定Model name。選擇DBMS驅動,如 ORACLE Version9i2。其餘預設。確定。4. 在Database Reverse Engineerning中選擇資料來源。在Using an ODBC data

Chrome預設字型太小解決辦法

當網站的字型為12px時,在Chrome裡顯示的非常小,看起來非常的吃力。修改的方法:1. 務必先關閉你的Chrome瀏覽器。(不先關閉的話,修改可能會被覆蓋掉)2. 最好再備份一下設定檔,如果設定檔搞壞了會很慘:Code highlighting produced by Actipro CodeHighlighter

電影《記憶片段》影評

前兩天看了電影《記憶片段》,看的時候並沒有很仔細,看完之後感覺一頭霧水,許多的疑問在我腦中湧現出來。主人公萊尼為何要殺死自稱探長的泰迪?薩米究竟是誰?那個納塔莉亞(駭客帝國中的Trinity)又跟萊尼什麼關係?電影中黑白部分和彩色部分是如何銜接的?? 帶著這些問題,我看了網上一些網友的評論,各種各樣的說法都有,也解釋了許多的疑問,甚至有人把這部電影的順序劇情版本剪了出來並發到了網上(執著精神可嘉!),在這種精神的驅動下,我今天又把這部電影重新看了一遍,把劇情也認真理了一遍。看第二遍的時候,思路要

為什麼Twitter不使用Cassandra儲存Tweets(譯)

原文地址:http://highscalability.com/blog/2010/7/11/so-why-is-twitter-really-not-using-cassandra-to-store-tweets.html當前討論的中心是Cassandra作為NoSQL的主要產品已經被剝去了華麗的衣裳。首先是Twitter已經放棄了Cassandra,並且據說作為Cassandra誕生的地方,Facebook也已經放棄了Cassandra。NoSQL已經失敗了這種論調已經充斥在了各大社區上,C

老話重彈——再談介面與抽象類別

1. 從依賴倒置說起首先,我們來看下《敏捷式軟體開發 (Agile Software Development)》中對依賴倒置的說明:a. 高層模組不應該依賴於低層模組,二者都應該依賴於抽象。b. 抽象不應該依賴於細節,細節應該依賴於抽象。我們先拋開第二點來看第一點,什麼叫高層模組,什麼叫低層模組。在我理解來看:高層模組也就是戰略性模組,業務性模組。而低層模組就是戰術性模組,細節類別模組。先來看這樣一段代碼: class Person { private Mouth

.net自動更新組件Ant

  Ant是基於Beetle實現開源的自動更新工具,主要包括三大部分:網路檔案服務,檔案更新管理和用戶端更新群組件.網路檔案服務服務端主要用於檔案管理,包括檔案上傳和下載。服務在開啟的時候必鬚生成rsa認證,主要是用於管理端更新檔案時進行一個有效性驗證.檔案更新管理檔案管理端是用於管理更新的檔案,必須把服務端產生的private

.net BinaryFormatter序列化對象慢的原因

文章目錄 ProtoBuf.net的測試代碼BinaryFormatter的測試代碼ProtoBuf.net 的記憶體使用量情況BinaryFormatter的記憶體使用量情況     最近在做組件對象寫入流的最佳化,因此對一些.net下序列化組件做了一些測試,分別針對ProtoBuf.net

一個簡單基於LRU串連檢測實現

       

關於WPF的Binding 的 ConverterParameter 參數的動態設定

首先,如果 看代碼<TextBlock Text={Binding Path=sss,Converter={StaticResource wwww},ConverterParameter=dddd}>假如,在後台代碼中,改變了ddd的值,是不會調用wwww的。實現思路:使用MultiBinding解決把sss,ddd,封裝到一個對象中,實現INoticefyPropertyChanged介面   <TextBlock  Foreground="White"

Qt之Regex – QRegExp

Qt裡對大名鼎鼎的Regex有很好的支援,使用QRegExp類,你可以非常快的完成對文本的驗證、資料提取、替換。Qt的SDK包裡還提供了regexp的GUI小工具,方便你對Regex的驗證。本文在Qt4.5.3下驗證通過。用Regex驗證文本有效性你可以使用QRegExp::exactMatch來判斷一個字串是否符合一個pattern。

nginx做透明代理

前一陣子在幫一朋友解決問題時,聊及nginx的透明代理的問題,當時就想修改nginx來實現透明代理,幸好一直沒有付諸實現,不然又一次重造輪子.下午在郵件清單中討論到這個問題,nginx的作者Igor的回答讓我茅塞頓開。看以下配置:user www; worker_processes 1;error_log /var/log/nginx/error.log debug; #pid logs/nginx.pid;events { use epoll;

FB/IB多代事務結構詳解–對FB事務最好的講解

近來,接到很多人詢問InterBase的交易處理問題。我在以前文章的基礎上重新加以整理,寫了這個說明InterBase事物處理的短文,希望對大家有所協助。此外,我希望唐版主能把這個短文做成一個單獨檔案串連,便於大家查閱,謝謝。InterBase的交易管理我 們知道,與其它關聯式資料庫系統不同,InterBase採用獨特的多代結構和版本事務來提高其效能,因此,對InterBase來說,事務就顯得尤其重

CorelDRAW 編寫和運行巨集指令

開發和運行 CorelDRAW 巨集指令之前,必須安裝 VBA 組件。 安裝 CorelDRAW VBA VBA 在 CoerlDRAW 11和12 中是作為典型安裝的一部分安裝。CoerlDRAW 10 中,VBA 必須自訂安裝。 自訂安裝 VBA 1  插入標號為光碟片1的安裝CD到您的電腦的CD磁碟機。如果安裝程式不自動啟動,雙擊D:\Setup.exe檔案啟動,其中     D:是您的電腦的CD磁碟機。 2  如果安裝啟動,然後點一下安裝 CorelDRAW 12 圖形套件。

總頁數: 61357 1 .... 1979 1980 1981 1982 1983 .... 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.