設計模式——訪問者模式 Visitor模式允許我們在不改動原有結構的基礎之上不斷增加新的功能。 ICumulation接口定義了方法Cumulate(),旨在計算1+2+……+n,有兩種不同的實現方法,一個是一般的疊加算法GeneralArithmetic,一個是高斯算法GaoSiArithmetic。 因為某種原因,系統需要添加求平均值的功能,還有計算1到n的平方和。 按照一般的思路,我們需要在ICumulation中定義兩個方法分別計算平均值和平方和,并在實現類中同時添加相應的方法。在搭建了visitor模式的架構以后,添加功能的代碼被移植到ICumulationVisitor中,添加的兩種功能也分別被以子類AverageVisitor和PowerVisitor實現。 功能的擴展從在類中添加方法的方式變成了添加新類的方式,該類繼承一定的Visitor接口。這是一個90度的轉換,使得架構符合開放封閉(OCP)原則:功能的擴展無需改動原有代碼。 同時,這里也體現了單一職責原則(SRP),ICumulation層次結構可以因為出現了不同的算法而改變,但是不應該因為需要計算不同的東西(功能)而改變,算法和功能是橫向和縱向的關系。這里visitor模式隔離了算法和功能,ICumulation層次結構負責算法,ICumulationVisitor層次結構負責功能。
標簽: ICumulation Cumulate Visitor 模式
上傳時間: 2015-06-12
上傳用戶:上善若水
viterbi 編譯碼器C源程序,rate=1/2 N=7
上傳時間: 2015-06-14
上傳用戶:gundan
此軟件包包含了模擬I2C C51程序軟件包和ZLG7290的C51程序然后包。 軟件包的接口界面: (1) bit ISendByte(uchar sla,uchar c) (無子地址)寫單字節數據 (現行地址寫) (2) bit IRcvByte(uchar sla,uchar *c) (無子地址)讀單字節數據 (現行地址讀) (3) bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no)(有子地址)讀N字節數據 (4) bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no) (有子地址)寫N字節數據 (5) bit ISendStr(uchar sla,uchar *s,uchar no) (無子地址)寫多字節數據 (6) bit IRcvStr(uchar sla,uchar *s,uchar no) (無子地址)讀單字節數據 (7) unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data) (8) void ZLG7290_SendBuf(unsigned char * disp_buf,unsigned char num) (9) unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2) (10)unsigned char ZLG7290_GetKey()
上傳時間: 2013-12-05
上傳用戶:hongmo
這是一個簡單的小工具,有點類似我們使用form方式設計時,使用behaver方式讓各個form作轉場特效一樣,不過這個工具是針對各個movie clip,相信對一些Art設計師有一定的幫助囉, 使用的是Transition manager方式完成,相信不久會有利用tween class方式的程式產生器吧..其實我還蠻需要的...因為help檔沒有,有時要參考指令,都要上網查一次
上傳時間: 2013-12-17
上傳用戶:hasan2015
TLC2543的中文簡介,附有匯編操作,TLC2543是德州儀器公司生產的12位開關電容型逐次逼近模數轉換器,它具有三個控制輸入端,采用簡單的3線SPI串行接口可方便地與微機進行連接,是12位數據采集系統的最佳選擇器件之一。本文介紹了該芯片的功能、時序,并給出了8051單片機的接口電路。
上傳時間: 2014-11-29
上傳用戶:caozhizhi
HMM(Hidden Markov Model),狀態數目N=3,觀察符號數目M=2,時間長度T=3。 (a) Probability Evaluation: 給定狀態轉換機率A、狀態符號觀察機率B、和起始機率 ,求觀察序列 出現的機率。 (b) Optimal State Sequence: 給定狀態轉換機率A、狀態符號觀察機率B、起始機率 、和觀察序列 ,求一個狀態序列 使得O出現的機率最大。 (c) Parameter Estimation: 給定狀態轉換機率A、狀態符號觀察機率B、起始機率 、和觀察序列 ,求新的A、B、 ,使得O出現的機率最大。
上傳時間: 2014-08-28
上傳用戶:heart520beat
一個rs-232接口的程序,已經通過調試。收發只用一個定時器。主芯片——8xC751
上傳時間: 2015-07-06
上傳用戶:saharawalker
本書第二部分講述的是在Wi n 3 2平臺上的Wi n s o c k編程。對于眾多的基層網絡協議, Wi n s o c k是訪問它們的首選接口。而且在每個Wi n 3 2平臺上,Wi n s o c k都以不同的形式存在著。 Wi n s o c k是網絡編程接口,而不是協議。它從U n i x平臺的B e r k e l e y(B S D)套接字方案借鑒了 許多東西,后者能訪問多種網絡協議。在Wi n 3 2環境中,Wi n s o c k接口最終成為一個真正的 “與協議無關”接口,尤其是在Winsock 2發布之后。
上傳時間: 2015-07-08
上傳用戶:thinode
本章講解微軟Visual Basic Wi n s o c k控件的問題。這是一種非常新的控件,用于將Wi n s o c k 接口簡化成易于使用的Visual Basic內部接口
上傳時間: 2013-12-19
上傳用戶:Thuan
雖然Windows下可視化開發工具如VC、Delphi、C++ Builder等都有專用的定時器控件Timer,而且使用很方便,可以實現一定的定時功能,但最小計時精度僅為55ms,且定時器消息在多任務操作系統中的優先級很低,不能得到及時響應,往往不能滿足實時控制環境下的應用。不過Microsoft公司在Win32 API函數庫中已經為用戶提供了一組用于高精度計時的底層函數,如果用戶使用得當,計時精度可到1ms。這個計時精度、對于一般的實時系統控制完全可以滿足要求?,F將由C++ Builder 4.0提供的重新封裝后的一組與時間相關的主要接口函數(函數名、參數、功能與Win32 API基本相同)說明如下:
標簽: Windows Builder Delphi Timer
上傳時間: 2013-12-21
上傳用戶:康郎