Time of Update: 2018-12-07
策略模式的用意是針對一組演算法,將每一個演算法封裝到具有共同介面的獨立的類中,從而使得它們可以相互替換。策略模式使得演算法可以在不影響到用戶端的情況下發生變化。 假設現在要設計一個販賣各類書籍的電子商務網站的購物車(Shopping Cat)系統。一個最簡單的情況就是把所有貨品的單價乘上數量,但是實際情況肯定比這要複雜。比如,本網站可能對所有的教材類圖書實行每本一元的折扣;對連環畫類圖書提供每本7%的促銷折扣,而對非教材類的電腦圖書有3%的折扣;對其餘的圖書沒有折扣。由於有這樣複雜的折扣演算法,
Time of Update: 2018-12-07
概述在物件導向的軟體設計中,我們經常會遇到一類集合對象,這類集合對象的內部結構可能有著各種各樣的實現,但是歸結起來,無非有兩點是需要我們去關心的:一是集合內部的資料存放區結構,二是遍曆集合內部的資料。物件導向設計原則中有一條是類的單一職責原則,所以我們要儘可能的去分解這些職責,用不同的類去承擔不同的職責。Iterator模式就是分離了集合對象的遍曆行為,抽象出一個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部代碼透明的訪問集合內部的資料。意圖提供一種方法順序訪問一個彙總對象中各個
Time of Update: 2018-12-07
讀寫大文本為防止注入等各種問題,將文本轉換為Unicode或UTF8進行儲存/// <summary> /// 將文本字串轉換成帶","號分離的二進位字串 /// </summary> /// <param name="strContent">文本字串</param> /// <returns>帶,號分離的二進位字串</returns> private string strTextTostrBin(string
Time of Update: 2018-12-07
摘要:結構型模式,顧名思義討論的是類和對象的結構,它採用繼承機制來組合介面或實現(類結構型模式),或者通過組合一些對象,從而實現新的功能(對象結構型模式)。這些結構型模式,它們在某些方面具有很大的相似性,仔細推敲,側重點卻各有不同。本文試圖對這幾種結構型模式做一個簡單的小結。主要內容1.結構型模式概述2.結構型模式區別與比較3.對變化的封裝結構型模式概述結構型模式,顧名思義討論的是類和對象的結構,它採用繼承機制來組合介面或實現(類結構型模式),或者通過組合一些對象,從而實現新的功能(對象結構型模
Time of Update: 2018-12-07
代理(Proxy)模式給某一個對象提供一個代理,並由代理對象控制對原對象的引用。 代理模式的英文叫做Proxy或Surrogate,中文都可譯成"代理"。所謂代理,就是一個人或者一個機構代表另一個人或者另一個機構採取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在用戶端和目標對象之間起到中介的作用。 二、 代理的種類 如果按照使用目的來劃分,代理有以下幾種:
Time of Update: 2018-12-07
CREATE TRIGGER [usageinsert] ON [dbo].[t_res_usage_info] AFTER INSERT //插入後執行ASbegindeclare every_use_cursor cursor local forward_only for select res_typ from inserted //建立遊標declare @myres_type_name varchar(20);open
Time of Update: 2018-12-07
三位“盟友”James Rumbaugh、Grady Booch和Ivar
Time of Update: 2018-12-07
一、建立型模式1、Factory追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory原廠模式:客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。如:如何建立及如何向用戶端提供。2、BuilderMM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們
Time of Update: 2018-12-07
Flyweight在拳擊比賽中指最輕量級,即"蠅量級",有些作者翻譯為"羽量級"。這裡使用"享元模式"更能反映模式的用意。 享元模式以共用的方式高效地支援大量的細粒度對象。享元對象能做到共用的關鍵是區分內蘊狀態(Internal State)和外蘊狀態(External State)。內蘊狀態是儲存在享元對象內部並且不會隨環境改變而改變。因此內蘊狀態並可以共用。
Time of Update: 2018-12-07
四大絕:焊雷管、鋸燈泡、精修處女膜、火補避孕套四大閑:大款的媳婦、貪官的錢、和尚的雞吧、調研員四大黑:人民FA院、交警隊、東北娘們、B社會。四大白:天上雲、地上霜、大姑娘的屁股、白菜梆。四大快:閃電、流星、騎馬、射精四大硬:牆上磚、門上栓、夜裡雞吧、電線杆四大緊:手銬、腳鐐、奶罩、避孕套四大愛:聽宋租英唱歌,跟王小丫握手,和楊鈺瑩比個兒,看趙薇出醜四大白:下大雪,趕綿羊,大姑娘的屁股,白砂糖四大背:髒亂被盜,情人被撬,老婆被操,買盒偉哥還是他媽假藥四大蹦:魚出水,跳大神,火燎兔子,踩電門四大薄:
Time of Update: 2018-12-07
剛剛開始接觸J2EE,我發現的haibernate串聯刪除的問題;實驗如下:1.首先將hibernate主表設定檔cascade設定為"delete";oracle資料庫的外鍵ondelete設定為noaction刪除主表中的資料,會報異常violated - child record found2.首先將hibernate主表設定檔cascade設定為""save-update"";oracle資料庫的外鍵ondelete設定為noaction刪除主表中的資料,會報異常violated -
Time of Update: 2018-12-07
外部與一個子系統的通訊必須通過一個統一的門面(Facade)對象進行,這就是門面模式。 醫院的例子 用一個例子進行說明,如果把醫院作為一個子系統,按照部門職能,這個系統可以劃分為挂號、門診、劃價、化驗、收費、取藥等。看病的病人要與這些部門打交道,就如同一個子系統的用戶端與一個子系統的各個類打交道一樣,不是一件容易的事情。 首先病人必須先挂號,然後門診。如果醫生要求化驗,病人必須首先劃價,然後繳款,才能到化驗部門做化驗。化驗後,再回到門診室。
Time of Update: 2018-12-07
1..NET Framework簡介.NET Framework為開發應用程式而建立的一個富有革命性的平台。.NET Framework可以建立Windows應用程式、Web應用程式、Web服務和其他各種類型的應用程式。.NET Framework的內容。.NET Framework是一種底層架構,包括開發人員編寫、產生、測試、部署.NET Framework應用程式時所需要的一切類,其目的是便於開發商編寫網路應用程式和Web服務程式,關鍵特色是提供了一個多語言群組件的開發和執行環境。.NET
Time of Update: 2018-12-07
橋樑模式是一個非常有用的模式,也是比較複雜的一個模式。熟悉這個模式對於理解物件導向的設計原則,包括"開-閉"原則(OCP)以及組合/彙總複用原則(CARP)都很有協助。理解好這兩個原則,有助於形成正確的設計思想和培養良好的設計風格。
Time of Update: 2018-12-07
最近學習製作WinForm控制項,自己動手寫控制項的時候才發現System.Windows.Forms.Control 竟然沒有提供預設的border繪製。記得以前用API做控制項的時候,只需要設定空間視窗的WS_BORDER 風格就可以。遍尋無方,只有自己繪製了,這裡有出現一個,如果border在客戶區,那麼在OnPaint方法裡不得不每次都要考慮Border所佔用的地區,而且,如果從這個類派生的話,將無法獲得準確的客戶區。
Time of Update: 2018-12-07
一、 "開放-封閉"原則(OCP) Open-Closed Principle原則講的是:一個軟體實體應當對擴充開放,對修改關閉。 優點: 通過擴充已有軟體系統,可以提供新的行為,以滿足對軟體的新的需求,使變化中的軟體有一定的適應性和靈活性。 已有軟體模組,特別是最重要的抽象層模組不能再修改,這使變化中的軟體系統有一定的穩定性和延續性。 二、 裡氏代換原則(LSP) Liskov Substitution
Time of Update: 2018-12-07
命令(Command)模式屬於對象的行為模式【GOF95】。命令模式又稱為行動(Action)模式或交易(Transaction)模式。命令模式把一個請求或者操作封裝到一個對象中。命令模式允許系統使用不同的請求把用戶端參數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢複功能。 命令模式是對命令的封裝。命令模式把發出命令的責任和執行命令的責任分割開,委派給不同的對象。
Time of Update: 2018-12-07
觀察者模式又叫做發布-訂閱(Publish/Subscribe)模式、模型-視圖(Model/View)模式、源-監聽器(Source/Listener)模式或從屬者(Dependents)模式。 觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態上發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。
Time of Update: 2018-12-07
訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。 問題提出 System.Collection命名空間下提供了大量集合操作對象。但大多數情況下處理的都是同類對象的聚集。換言之,在聚集上採取的操作都是一些針對同類型對象的同類操作。但是如果針對一個儲存有不同類型對象的聚集採取某種操作該怎麼辦呢? 粗看上去,這似乎不是什麼難題。可是如果需要針對一個包含不同類型元素的聚集採取某種操作,而操作的細節根據元素的類型不同而有所不同時,
Time of Update: 2018-12-07
準備一個抽象類別,將部分邏輯以具體方法以及具體構造子的形式實現,然後聲明一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模版方法模式的用意。 很多人可能沒有想到,模版方法模式實際上是所有模式中最為常見的幾個模式之一,而且很多人可能使用過模版方法模式而沒有意識到自己已經使用了這個模式。模版方法模式是基於繼承的代碼複用的基本技術,模版方法模式的結構和用法也是物件導向設計的核心。