前幾天看了一遍文章,說是“中國被世界拋棄了”,感觸蠻深的。是啊,中國最近幾年的改革真是叫“天翻地覆”了,但是我們不能一味著去“改革”,我們也要回頭看看這些“改革”是否有問題呢? 可能是因為沒有太多的經驗吧,某些“改革”在“華麗”的外表下,卻延伸出極端文化。一個國家的繁榮,不能依靠“外國”,尤其是我們是傭有12億人口的大國,當我們的生活越是依賴於“外國”時,有一天當他們拋棄我們時,我們就會死的很慘。 看看我們國家每年的財政收入,貿易順差越來越大,老外們天天要喊“中國傾銷”,為什嗎?很簡單,一個12
問題:在物件導向軟體設計時,常常碰到某一個對象由於狀態的不同而有不同的行為。我們可以採用switch…case語句來解決問題,但是,如果這種狀態變化比較頻繁(狀態的數量會變化),狀態、判斷邏輯、行為耦合在一起,當系統中需要加入新的狀態時,必須修改判斷邏輯(加入新的case...)。定義:狀態模式(State
問題:在物件導向系統的設計和開發中,在某些特定的情境下,需要在運行時不改變對象類的前提下動態為已經定義好的對象添加新的職責(操作),使用繼承時將會建立出大量的子類,而且繼承的實現都是靜態,用戶端不能在運行期(runtime)根據環境需要靈活控制改變組合添加的多個功能。定義:動態給一個對象添加一些額外的職責。就增加功能來說,裝飾模式比產生子類更加靈活。意圖:提供一個Decorator角色,它維護了一個需要裝飾的Component具體對象的索引,Decorator收所有的來自用戶端的請求,轉寄這些請
問題:在物件導向的軟體設計中,經常會遇到一個(或一系列)對象,對象本身的資料存放區與對象的操作耦合在一起。例如一個對象有add(),edit(),delete()方法,這樣對象支援的方法很難擴充,如果需要加入update()就必須修改代碼,用戶端與對象也是緊耦合的。命令模式是將一類對象的功能(行為,功能)抽象成一個命令對象,用戶端在使用的時候,只與該命令對象打交道,而不用與對象打交道,分離命令的要求者和命令的執行者,降低了耦合性,可以使用不同的請求對客戶進行參數化提高了程式設計的靈活性。定義:命
前段時間由於項目很急,SmartPersistenceLayer 一直沒有時間整理髮布,現在終於整理結束,可以正式發布了! 為了讓大家能真正體驗SmartPersistenceLayer的效果,我寫了一個Sample,現在連同Sample原始碼一起發布,:http://files.cnblogs.com/tintown/SPL2.0.1.8Release.rar
NetAdvantage 2004 vol 3中有一個WebTextEdit的文本輸入控制項,此控制項主要是用於文本的輸入,具有預設Text控制項的所有功能,當然還擴充了一些自身的功能,在協助中可以找到所有功能的描述,我這裡就講幾個比較有特點的功能。此WebTextEdit的整合了好幾種樣子,如XP:,我們可以從StylePreset屬性中選擇多種樣式。HideEnterKey屬性預設是false,我們可以設定為true,這樣在對這個文字框進入輸入時,按下Enter
技術負責人請看: 您好! 去年本人把"男友5.0"升級為"老公1.0",發現財務軟體發生意外的變化,導致與在 "男友5.0"版本下,運行良好的"flower"和"裝飾品"應用程式的串連發生障礙。而且"老公1.0"系統刪除了"浪漫9.9"等軟體,並擅自把"足球11.0"或者"nba3.0"安裝進去。更糟糕的是,"溝通8.0"也不象以前那樣靈活,"家務2.6"子系統漸漸處於崩潰狀態。我試圖用" 嘮叨5.3"解決問題,還是沒有效果。 請告訴我如何解決此問題?
經過設計,智能用戶端應用程式可以將胖用戶端應用程式的優點與瘦用戶端應用程式的部署和可管理性優點結合起來,然而,要完全實現智能用戶端應用程式的優點,需要考慮許多體繫結構和設計問題。 智能用戶端進階開發系列講座提供了設計和實現智能用戶端應用程式的最佳實務,從而使您能夠在儘可能短的時間內實現智能用戶端應用程式的優點。 第一天 Smart Client 介紹
問題:在某些情況下,一個對象不想或者不能直接引用另一個對象,而代理對象可以在用戶端和目標對象之間起到中介的作用。•當由於某些特定的需要調用的對象在另外一台機器上,需要跨越網路才能訪問,在沒有WebService的情況下我們需要直接coding去處理網路連接、處理打包、解包等等非常複雜的步驟,而WebService的出現幫我們解決了其中的一些問題簡化用戶端的處理,我們只需在用戶端建立一個遠程對象的代理,用戶端就象調用本機物件一樣調用該代理,再由代理去跟實際對象聯絡,對於用戶端來說可能根本沒有感覺到
蝴蝶效應蝴蝶效應是氣象學家洛倫茲1963年提出來的。其大意為:一隻南美洲亞馬孫河流域熱帶雨林中的蝴蝶,偶爾扇動幾下翅膀,可能在兩周后引起美國德克薩斯引起一場龍捲風。其原因在於:蝴蝶翅膀的運動,導致其身邊的空氣系統發生變化,並引起微弱氣流的產生,而微弱氣流的產生又會引起它四周空氣或其他系統產生相應的變化,由此引起連鎖反映,最終導致其他系統的極大變化。此效應說明,事物發展的結果,對初始條件具有極為敏感的依賴性,初始條件的極小偏差,將會引起結果的極大差異。
到底怎麼吃? 與同事到外地出差,當地的同事熱情好客,當晚便在一特色酒店的包間設宴接風。男男女女十幾個人落座後便不停的聊天,只有一個人在點菜。點好了, 徵求大伙兒意見:“菜點好了,有沒有要加的?” 這種情況,我們在北京一般是讓小姐把點過的菜名兒報一遍。於是一位北京的哥們兒說:“小姐,報報。” 小姐看了他一眼,沒動靜。 “小姐,報一下!”哥們兒有點兒急了。 小姐臉漲得通紅,還是沒動靜。
問題:在物件導向的軟體設計中,經常需要將一些現存的對象放在新的環境中或與新的對象一起工作,但是他的介面與新環境要求的介面不同,而雙方又都無法改變。定義:適配器模式
這個問題遇到的人非常多,在網上也搜了不少,基本上都是講許可權的問題:http://blog.joycode.com/ghj/archive/2004/10/22/36274.aspx不過,上面的方法全試過了,確實還是有不少人沒有成功,後來找到一個人說的:把:SmtpServer的屬性改用SmtpServer.Insert()方法就可以了,如下:SmtpMail.SmtpServer = "127.0.0.1"try SmtpMail.SmtpServer.Insert( 0, "127.0.0.
問題:在物件導向的設計中,抽象是一個很重要的概念,所謂抽象就是忽略一類對象的特殊特性,提出一些共有的特性,暫時忽略一些細節,而對與此類對象的變化可以使用繼承的手段在子類中完成,換言之,用繼承來應對抽象的變化。在軟體系統中,當抽象由於某種原因也容易變動,使得對象從兩個維度或更多方向上發生改變。使用繼承方案往往違背了類的單一職責原則(即一個類只有一個變化的原因),複用性比較差。Bridge模式是比繼承方案更好的解決方案。定義:橋接模式(Bridge
問題:在某些情況下,一類具有“容器特徵”的對象在充當對象的同時,又是其他對象的容器的情況,比如樹狀結構的對象,如果客戶過多地依賴於對象容器複雜的內部實現結構,對象容器內部實現結構的變化將引起客戶代碼的頻繁變化。如何將“客戶代碼與複雜的對象容器結構”解耦?讓對象容器自己來實現自身的複雜結構,從而使得客戶代碼就像處理簡單對象一樣來處理複雜的對象容器? 定義:組合(Composite
問題:在軟體系統中,有時面臨著一個複雜物件的建立工作,通常是由很多其他的對象按一定的規則順序組合而成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的規則是相對穩定(結構和順序)。這時候我們需要把這個複雜物件的建立過程和這個對象的表示(展示)分離開來,使得可以使用同樣的構建過程建立不同的對象
前天(2007-4-22)的時候,接到一個上海來的電話,他說“我是上海XXX公司的,您最近的股票做的怎麼樣?”我很奇怪的,我根本不買股票的,我就說“我不買股票的”對方就說“哦,那不好意思啊”,然後就掛了。過了一天(2007-4-23),又接到一個來自北京的,內容一模一樣,只是公司名換了。很奇怪,這倒是怎麼回事,相信也有其他網友接到這樣的電話吧?簽 個名有人知道是怎麼回事嗎?
問題:在物件導向系統的分析與設計過程中經常會遇到,對於某一個商務邏輯(演算法實現)在不同的對象中有不同的細節實現,但是邏輯(演算法)的架構(或通用的應用演算法)是相同的。這時候我們一般需要把邏輯(演算法)架構放在抽象基類中,並定義好細節的介面,採用繼承的方式在子類中實現細節。定義:模板方法模式是類的行為模,定義一個操作中的演算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個演算法的結構即可以重定義演算法的某些特定步驟。 意圖:Template是採用繼承的方式實現演算法的異構,將通
問題:在程式設計中,我們可能由於某種特定的需要,複製一個對象的結構,與對象的值,動態擷取擷取對象運行時的狀態,最簡單的解決辦法是 new
一篇被新浪推薦的部落格吸引了我:《回國後,我反而不習慣了》http://blog.sina.com.cn/s/blog_4ac430cb01000djj.html然後又有很多人進行批評:《回國後,不習慣了?用新浪部落格表達一下我的BS》http://blog.sina.com.cn/s/blog_537edd3d01000bto.html 《我們愛她,那是因為她是我們偉大的祖國》http://blog.sina.com.cn/s/blog_48b0601701000b0j.html 我也想表達一