[設計模式整理筆記 九] 面板模式(Facade)

[導讀][設計模式整理筆記 一] 基礎知識[設計模式整理筆記 二] 簡單原廠模式(Simple Factory)[設計模式整理筆記 三] 原廠模式(Factory)[設計模式整理筆記 四] 抽象原廠模式(Abstract Factory)[設計模式整理筆記 五] 建立者模式(Builder)[設計模式整理筆記 六] 原廠模式與建立者模式總結[設計模式整理筆記 七] 原型模式(ProtoType)[設計模式整理筆記 八] 單例模式(Singleton)[設計模式整理筆記

物件導向建模與資料庫建模兩種分析設計方法的比較

板橋裡人 http://www.jdon.com 2007/9/23(轉載請保留)  我們知道:一個軟體從無到有需要經過如下幾個階段:分析、設計、編程、調試、部署和運行。  

常用Regex/常用驗證

只能輸入數字:"^[0-9]*$"。

學習筆記(1)

最近買了幾本SQL2005的書, 看到書中有些比較經典的問題列記出來, 方便日後工作尋找。這本書是<<SQL Server 2005 進階程式設計>> 美國:Robert Vieira著, 董明等譯。一本十分基礎的書。   Inner join, left join, right jion的區別   表A 表B 通達UserID關聯。   Inner join: A.UserID=B.UserID 取得滿足二個表都有相同的UserID的記錄   left join: A.

學習筆記(2)

   1、替代inner join, left join(*=), right join(=*)   select A.UserID, B.WorkFlowStatus from A ,B B where A.UserID=B.UserID   這樣就可以替代Inner join   select A.UserID, B.WorkFlowStatus from A ,B B where A.UserID*=B.UserID   通過*=或=*替代   2、update的多種格式  

四色原型

轉自 板橋裡人 http://www.jdon.com 2006/2/19 前言  我們搞技術的有很多誤區,比如經常陷入純技術鑽牛角尖的爭辯,而全然不顧業務情境,技術活做太多,經驗一籮筐,但是有時會疑惑,這些經驗是否適合其他自己沒有經曆過的新系統呢?我們在技術設計路線上走得太久,容易迷失方向,什麼是設計不足;什麼是過度設計,如何把握這個度?   在對待項目上,有一種極端是認為每個項目都是特殊的,不可能和其他項目有共同之處;這算是一種經驗主義吧。

學習筆記(3)

   1、約束的操作   Cascade, No Action理解   當在建立約束時選上Cascade,或代碼建立時添加ON Delete CASCADE,當在主表刪除一行記錄時, 外表相關聯的記錄都會同時刪除   當在建立約束時選上No Action,或代碼建立時添加ON Delete No Action,當在主表刪除一行記錄時, 如果外表關聯有資料, 則會提示出錯   上面的只是Delete, 其實Update也是一樣的   2、Unique約束   如主鍵一樣,讓一列資料只能有唯一的值 

學習筆記(4)

   1、定義變數與賦值   Declare @UserID  --定義變數   Select @UserID=1 --賦值      Set @UserID=1   Select @UserID=UserID from tb_User where UserName='A'  --這樣也是可以賦值的, 記得剛學SQL2000不知道這樣是可以      如下: 則通過變數,把值返回, 不需要另外建立表   Declare @UserID int, @UserName varchar(20)  

代碼壞的味道09:基本類型偏執(Primitive Obsession)

  對象技術的新手通常不願意在小任務上運用小對象—像是結合數值和幣種的money類,由一個起始值和結束值組成的range類等。你可以使用 Replace Data Value with Object (以對象取代資料值)將原本單獨存在的資料值替換為對象。如果想要替換的資料值是類型碼,而它並不影響行為,則可以運用 Replace Type Code with Class (以類取代類型碼)將它替換掉。如果你有與類型碼相關的條件運算式,可運用 Replace Type Code with

重構手法14:Hide Delegate (隱藏委託關係)

 客戶通過一個委託類在調用另一個對象。在服務類上建立客戶所需的所有函數,用以隱藏委託關係。動機:“封裝”即使不是對象的關鍵特徵,也是關鍵特徵之一。“封裝”意味每個對象都有應該儘可能少瞭解系統的其他部分。如此一來,一旦發生變化,需要瞭解這一變化的對象就會比較少,這會使變化較容易進行。       如果某個客戶先通過服務物件的欄位得到另一個對象,然後調用後者的函數,那麼客戶就必須知曉這一層委託關係。萬一委託關係發生變化,客戶也得相應變化。你可以在服務物件上放置一個簡單的委託函數,將委託關係隱藏起來,

重構手法26:Replace Magic Number with SymBolic Constant (以字面常量取代魔法數)

 你有一個字面數值,帶有特別含義。建立一個常量,根據其意義為它命名,並將上述的字面數值替換為這個常量。動機:在計算科學中,魔法數是曆史悠久的不良現象之一。所謂魔法數是指擁有特殊意義,卻又不能明確表現出這種意義的數字。如果你需要在不同的地點引用同一個邏輯數,魔法數會讓你煩惱不已,因為一旦這些數發生變化,你就必須在程式中找到所有魔法數,並將它們全部修改一遍。就算你不需要修改,要準確指出每個魔法數的用途,也會讓你頗費腦筋。      

重構手法09:Substitute Algorithm (替換演算法)

 你想要把某個演算法替換為另一個更清晰地演算法。將函數本體替換為另一個演算法。    string FoundPerson(string[] people)        {            for (int i = 0; i < people.Length; i++)            {                if (people[i].Equals("don"))                {                    return "don";  

重構手法15:Remove Middle Man (移除中間人)

 某個類做了過多的簡單委託動作。讓客戶直接調用受託類。動機:在Hide Delegate (隱藏委託關係)的“動機”中,談到了“封裝委派物件”的好處。但是這層封裝也是要付出代價的,它的代價是:每當客戶要使用受託類的新特性時,你就必須在服務端添加一個簡單委託函數。隨著委託類的特性(功能)越來越多,這一過程讓你痛苦不已。服務類完全變成了“中間人”,此時你就應該讓客戶直接調用受託類。       很難說什麼程度的隱藏才是合適的。還好,有了Hide Delegate (隱藏委託關係)和Remove

重構手法16:Introduce Foreign Method (引入外加函數)

 你需要為提供服務的類增加一個函數,但你無法修改這個類。在客戶類中建立一個函數,並以第一參數形式傳入一個服務類執行個體。       動機:這種事情發生了太多次了,你正在使用一個類,它真的很好,為你提供了需要的所有服務。而後,你又需要一項新服務,這個類卻無法供應。於是你開始咒罵“為什麼不能做這件事?”如果可以修改源碼,你便可以自行添加一個新函數;如果不能,你就得在用戶端編碼,補足你要的那個函數。      

Silverlight中的資源路徑

Silverlight中的資源一、使用相同組件中的資源檔1、xaml檔案和資源檔目錄同級         用image樣本   <Image x:Name="Image1"  Source="Images/xxx.png" /> Images檔案夾和MainPage.xaml檔案在同級目錄中 2、xaml檔案和資源檔夾不同級         <Image x:Name="Image1"  Source="../Images/xxx.png"

重構手法67:Replace Inheritance with Delegation (以委託取代繼承)

某個子類只使用超類介面中的一部分,或是根本不需要繼承而來的資料。在子類中建立一個欄位用以儲存超類;調整子類函數,令它改而委託超類;然後去掉2者之間的繼承關係。動機:繼承是個好東西,但有時候它並不是你要的。你常常會遇到這樣的情況:一開始繼承了一個類,隨後發現超類中的許多操作並不真正適用於子類。這種情況下,你所擁有的介面並未真正反映出子類的功能。或者,你可能發現你從超類中繼承了一大堆子類並不需要的資料,抑或你可能發現超類中的某些protected函數對子類並沒有什麼意義。      

重構手法46:Parameterize Method (令函數攜帶參數)

若干函數做了類似的工作,但在函數本體中卻包含了不同的值。建立一個單一函數,以參數表達那些不同的值。動機:你可能會發現這樣的2個函數:它們做著類似的工作,但因少數幾個值致使行為略為不同。這種情況下,你可以將這些各自分離的函數統一起來,並通過參數來處理那些變化,用以簡化問題。這樣的修改可以去除重複代碼,並提高靈活性,因為你可以用這個參數處理更多的變化情況。做法:1、建立一個帶有參數的函數,使它可以替換先前所有的重複性函數。       2、編譯。       3、將調用舊函數的代碼改為調用新函數。 

重構手法68:Replace Delegation with Inheritance (以繼承取代委託)

你在2個類之間使用委託關係,並經常為整個介面編寫許多極簡單的委託函數。讓委託類繼承受託類。動機:本項重構與Replace Inheritance with Delegation (以委託取代繼承)恰恰相反。如果你發現自己需要受託類中的所有函數,並且花費很大力氣編寫所有極簡單的委託函數,本重構可以協助你輕鬆回頭使用繼承。       2條告誡需牢記與心:首先,如果你並沒有使用受託類的所有函數,那麼就不應該使用Replace Delegation with Inheritance (以繼承取代委託)

學習筆記(5)

1、 事務   begin tran開始事務, commit tran提交事務, rollback tran復原事務, save tran儲存事務   前面三個十分熟悉, 最後一個save tran要好好理解與研究   其實save tran 儲存點的名稱, 就是一個書籤標誌, 像很多種操作在一個事務中的時候, 一個事務也分第一步第二步第三步..., 如果第一步沒錯, 第二步出錯, 需要復原, 這樣在第一步與第二步   之間添加一個save tran FirstStep, 通過rollback

學習jQuery必須知道常用的幾種方法

文章目錄 jQuery外觀效果 轉載:http://sd.csdn.net/a/20110117/290282.html jQuery事件處理ready(fn)Js代碼1. $(document).ready(function(){ 2. // Your code here... 3. }); $(document).ready(function(){// Your code

總頁數: 61357 1 .... 7040 7041 7042 7043 7044 .... 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.