簡單工廠模式 MFC計算器實現 連續操作

2021-06-23 03:53:55 字數 4228 閱讀 6562

設計模式是重構的目標,它在**復用和擴充套件方面有著非常重要的作用。學習物件導向,重構和設計模式的重要性自然不言而喻。那麼,學習設計模式需要與軟體設計,軟體編碼相結合起來,以例子為驅動。本文將通過mfc計算器的實現來學習簡單工廠模式。

無論怎麼樣,首先應該抽象出mfc計算器的實體類。通過查詢名詞,動名詞等等,準確找到實體類是第一步。

顯然,它的核心實體類是operator運算類。細想之,它的實現恰好與簡單工廠密切相關。

簡單工廠模式解釋:

簡單工廠模式(****** factory pattern)屬於類的創新型模式,又叫靜態工廠方法模式(static factorymethod pattern),是通過定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

簡單工廠模式的uml圖:

簡單工廠模式中包含的角色及其相應的職責如下:

工廠角色(creator):這是簡單工廠模式的核心,由它負責建立所有的類的內部邏輯。當然工廠類必須能夠被外界呼叫,建立所需要的產品物件。

抽象(product)產品角色:簡單工廠模式所建立的所有物件的父類,注意,這裡的父類可以是介面也可以是抽象類,它負責描述所有例項所共有的公共介面。

具體產品(concrete product)角色:簡單工廠所建立的具體例項物件,這些具體的產品往往都擁有共同的父類。

計算器的設計自然就出來了,請看類圖。

在這裡,c++語言的多型特性——父類物件指標操作子類物件。核心類是operato***ctory 和 operator 。以字串傳參。

下面附上關鍵**和工程分享。

// calculator_mfcdlg.h : 標頭檔案

//#pragma once

#include #include "afxwin.h"

//#include "operator.h"

#include "operto***ctory.h"

using namespace std;

// ccalculator_mfcdlg 對話方塊

class ccalculator_mfcdlg : public cdialogex

; protected:

virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援

// 實現

protected:

hicon m_hicon;

// 生成的訊息對映函式

簡單工廠 計算器

using system using system.collections.generic using system.text namespace operation set 數字b public double numberb set 得到運算結果 public virtual double get...

簡單工廠計算器

學習了設計模式,沒有怎麼應用過。小菜今天說一說簡單工廠模式,應用到乙個計算器上。先說一下大概的思路。首先設定乙個抽象父類 運算類 兩個屬性 int n1,int n2 乙個抽象方法 兩個值的運算 然後分別建立4個子類,加減乘除,這裡我只寫了加法和減法。寫乙個兩個引數的建構函式,並且要用到base n...

設計模式 策略模式和簡單工廠實現計算器

設計模式 策略模式和簡單工廠的結合 1 策略模式 strategy 介紹和優缺點 2 策略模式和簡單工廠的結合 3 策略模式的應用 設計模式 物件導向語言開發過程中,對各種問題和場景的解決方案的沉澱,是解決問題的套路,提出場景 解決問題 總結沉澱 推廣應用 行為型設計模式 關注物件和行為的分離 設計...