用State模式建立嚮導的實踐。。。

嚮導就是類似於安裝軟體時,一大堆下一步的那個表單。每一個上一步下一步意味著表單上的控制項需要改變,相關的按鈕的功能等也需要改變。在製作一個嚮導時,最初設計中,我用的enum來表示每一個步驟。比如:switch(stepEnum){case StepEnum.FirstStep:  //some work  break;case StepEnum.SecondStep:  //some work  break://...default: 

設計模式系列漫談之十二 - 職責鏈模式

從牙膏廣告說起     在午茶小憩間,以“成語接龍”形式,通過帥哥美女之口巧妙地把牙齒常見的癥狀表達出來,從而突出雲南白藥牙膏的獨特功效。這一極其創意的廣告為雲南白藥贏得了巨大的市場,也使其產品為廣大消費者所熟悉,創造了家喻戶曉的品牌效應。    成語接龍是一種人們喜聞樂見的遊戲。就遊戲規則來講非常簡單,即用前一個成語的尾字作為下一個成語的首字。我們可以認為,遊戲參與者需要做三件事情:一是接前一位參與人的成語首字;二是說出成語;三是把成語尾字傳給後一位參與人。職責鏈(Chain of

解耦的故事(一)-tmfc的開關

    此系列文章來源於我和jason網友的一次關於委託的對話,本來網上關於委託的文章實在是太多了,我也不想去寫這方面的東西。但是給jason網友解釋委託的那次對話卻顯得非常的有趣,在jason的建議下便整理成了這一系列文章,其中很多可能與委託並沒有什麼關係(只是因為它是從一次有關委託的對話而來),純屬本人的一些看法,如有說的不對的地方還請大家指正。開關的誕生   

(介面)讓僵冷的翅膀飛起來—從執行個體談OOP、原廠模式和重構

有了翅膀才能飛,欠缺靈活的代碼就象凍壞了翅膀的鳥兒。不能飛翔,就少了幾許靈動的氣韻。我們需要給代碼帶去溫暖的陽光,讓僵冷的翅膀重新飛起來。結合執行個體,通過應用OOP、設計模式和重構,你會看到代碼是怎樣一步一步複活的。為了更好的理解設計思想,執行個體儘可能簡單化。但隨著需求的增加,程式將越來越複雜。此時就有修改設計的必要,重構和設計模式就可以派上用場了。最後當設計漸趨完美後,你會發現,即使需求不斷增加,你也可以神清氣閑,不用為代碼設計而煩惱了。假定我們要設計一個媒體播放器。該媒體播放器目前只支援

ESPlatform 群集平台(01) -- 遷移到群集平台ESFramework 開發手冊(00) -- 概述

文章目錄 1.構造與初始化2.平台使用者管理員3.替換之後1.管理線上的應用伺服器和使用者2.轉寄訊息       在ESFramework 開發手冊(00) --

適配器模式 — Adapter Pattern — 和申、紀曉嵐泡妞比賽的故事(原創)

前言:我也是初學者,有不妥之處希望大家能提出意見。另外轉載請註明作者和出處,畢竟花了快一周的時間才完成。 瀏覽更多設計模式與和申、紀曉嵐的故事 話說乾隆、和申、紀曉嵐三人離京巡遊,一日來到一個村莊,村子有一戶人家住著一個漂亮姑娘和她的母親老夫人。姑娘喜歡三件事情:美食、購物、旅遊,但是這三件事情都是老夫人最厭惡的,她希望自己的女兒能做兩件事情:讀書、練字,可是姑娘一聽見這些東西就頭痛。 乾隆知道這些情況後想考察一下兩個大臣的能力,於是他給和申、紀曉嵐每人三天時間,看誰能把姑娘泡到手,讓和申先來。

ESFramework 開發手冊(07) -- 心跳機制

文章目錄 程式能立即感知的掉線       雖然我們前面已經介紹完了ESFramework開發所需掌握的各種基礎設施,但是還不夠。想要更好地利用ESFramework這一利器,有些背景知識是我們必須要理解的。就像本文介紹的心跳機制,在嚴峻的Internet條件下,是通訊系統中不可或缺的機制之一。     

2,Composite UI Application Block (CAB) 概念和術語

首先我們來看看Composite UI Application Block中涉及的相關概念和術語。這裡會做一個簡單的介紹,後續文章會詳細說到其用法。應用程式架構元素CAB. Composite UI Application Block的縮寫Module. 應用程式的組成組件,其中包含SmartParts,支援Service,商務邏輯和配置資訊等ObjectBuilder.通過策略和配置資訊自動建立對象執行個體的物件建構器。Shell.

我也設計模式——9.Bridge

橋模式,將意圖intension與實現implementor分離。其中,意圖通常用介面來定義,而實現相應為Factory,返回具體的意圖Implemention1。    public interface Intention    {        void Echo(string message);    }    public class Implemention1 : Intention    {        public void Echo(string message)       

我也設計模式——25.Visitor 上

1)現實中,如果我家的電腦壞了,我就去找電腦維修工來你家來修,這個人會在知道我家這個對象,然後來我家讓電腦重裝系統;當然若你家的電腦壞了,也會找這個維修工來修理,但可能是換硬碟。這就是訪問者模式。電腦維修工是ConcreteVisitorA,你家是ConcreteElementA。UML圖如下:     怎麼在用戶端使用呢?            電腦維修工 v1 = new 電腦維修工();            家庭 e = new 我家();            e.要求維修電腦(v1)

ESFramework 開發手冊(10) -- 安全機制

      在分布式通訊系統中,安全無疑是非常重要的。     

我也設計模式——5.Prototype

我很喜歡這個模式,因為它解決了對象賦值的問題。尤其是那個Clone方法,記憶猶新。使用情境:當一個系統應該獨立於產品的建立,構成和表示時,使用設計模式。.NET提供了ICloneable介面,只要實現了其Clone方法,在其中執行複製對象的操作。關鍵就是這個Clone方法,由於對象的複雜性,分為淺複製和深複製兩種:對於淺複製,可以使用Object的MembermiseClone方法:    public class A : ICloneable    {        public object

Coroutine(協程) 模式與“控制”和“行為”的代碼複用

文章目錄 建立協程協程的狀態 概念協程(Coroutine)這個概念最早是MelvinConway在1963年提出的,是並發運算中的概念,指兩個子過程通過相互協作完成某個任務,用它可以實現協作式多任務,協程(coroutine)技術本質上是一種程式控制機制。比如,消費者/生產者,你走幾步,我走幾步;下棋對弈,你一步我一步。Coroutine(協程)可以分為:非對稱式(asymmetric)協程,或稱半對稱式(semi-asymmetric)

我也設計模式——6.註冊工廠

這一節不講模式,講註冊工廠,是為了下一節研究Flyweight做準備。註冊工廠,就是建立一個小型“DB”,採用註冊方式,對執行個體進行管理。從實現上有兩種方式,但本質是相同的,都是在管理一組對象。為了講述方便,先建立一組父子類,Subject是ConcreteSubject1和ConcreteSubject2的父類。    public class Subject    {        }    public class ConcreteSubject1 : Subject    {     

OAUS自動升級系統

     只要是以下載用戶端的形式分發的程式,絕大多數都需要自動升級的功能。目前主流的程式自動升級策略是,重新下載最新的安裝包,然後重新安裝整個用戶端。這種方式雖然簡單直觀,但是缺陷也很明顯。比如,即使整個用戶端有100M,而本次更新僅僅只是修改了一個1k大小的dll,那也意味著要重新下載100M的全部內容。這對頻寬是極大的浪費,而且延長了升級了時間,相應地也增加了客戶茫然等待的時間。     

ESFramework Demo -- P2P通訊Demo(附源碼)

文章目錄 嘗試建立P2P通道    觀察P2P通訊       現在我們將在ESFramework Demo -- 檔案傳送Demo 的基礎上,使用ESPlus提供的第四個武器,為其增加P2P通訊的功能。在閱讀本文之前,請務必先掌握ESFramework 開發手冊(04) -- 可靠的P2P 一文中介紹的P2P的基礎知識以及相關API的用法。     

我也設計模式——4.Builder

但凡是模式,總要有一個UML才能說清楚。一般而言,我只記UML圖,有些模式有自己的固定實現代碼(只是其中一部分),尤其在C#中,甚至只是把使用者當作一個Client端,而不暴露其內部實現,只把封裝好的模式介面公布。於是,我會再記一些固定方法實現。還有就是適用場合(多看例子),優缺點。最後,橫向的看模式與模式之間的比較,聯合與差異。以上都做到了,這套心法也就成正果了。OO的思想也很重要,三個基本特徵尤其是多肽,介面與虛擬類,構造體與類,委託,索引,泛型,都是很值得探討的。開始正題,先給出Build

5,Composite UI Application Block (CAB) WorkSpace介紹

 通過前面的介紹我們可以知道在靜態Main方法中執行繼承自FormShellApplication的對象執行個體可以進行很多架構的初始化工作,如載入模組,載入服務等。從FormShellApplication的類型定義中:public abstract class FormShellApplication<TWorkItem,TShell> : WindowsFormsApplication<TWorkItem,TShell> where TWorkItem :

4,Composite UI Application Block (CAB) FormShellApplication介紹

 現在我們來看看基於CAB的應用程式中非常重要的一個類。這個類可以認為是一個CAB應用的啟動點。他就是FormShellApplication。FormShellApplication的繼承關係如下:該類需要傳入兩個型別參數,一個是繼承自WorkItem的類(如果不需要通過重載WorkItem的OnRunStarted方法來實現更多處理,這裡可以直接使用WorkItem),一個是繼承自Form的表單。public class

總頁數: 61357 1 .... 4178 4179 4180 4181 4182 .... 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.