程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> (C/C++ 版) 設計模式 學習之 工廠模式 (1)

(C/C++ 版) 設計模式 學習之 工廠模式 (1)

編輯:C++入門知識

(C/C++ 版) 設計模式 學習之 工廠模式 (1)


大話設計模式這本書使用 C# 語言寫的,我用的是 C++ 語言,最近在看這本書,所以用 C++ 語言走了一遍。

以下是部分筆記,包括代碼

若不涉及面向對象這個概念,我們寫的簡易計算器可能是下面這個樣子

 

//User.cpp --- 客戶端

#include iostream

int main()
{
	using namespace std;
	cout<>number_a;
	cout<>opera;
	cout<>number_b;

	int avaliable = 1;
	float result = 0;

	switch(opera)
	{
	case '+': result = number_a + number_b; break;
	case '-': result = number_a - number_b; break;
	case '*': result = number_a * number_b; break;
	case '/': 
		{
			if(number_b)
			{
				result = number_a / number_b; 
				break;
			}
			else avaliable = 0;
		}
	default: result = 0;
	}

	if(avaliable)
		cout<可以看出,很呆板,很麻煩,自能實現特定計算,不可調用,沒有移植的可能。

 

而 C++ 是一種面向對象的語言,下面我們用 OOP 思想來重寫這段代碼。

下面是一個簡單的例子,不是很合題,循序漸進。可配合這本書來看。

 

//Factory.h

#ifndef FACTORY_H
#define FACTORY_H

class operate
{
public:
	int number_a;
	int number_b;
	char sign;
	float result;

public:
	float calculate();
};

#endif


//Factory.cpp

#include Factory.h

float operate::calculate()
{
	switch(sign)
	{
		case '+': result = number_a + number_b; break;
		case '-': result = number_a - number_b; break;
		case '*': result = number_a * number_b; break;
		case '/': 
			{
				if(number_b)
				{
					result = number_a / number_b; 
					break;
				}
			}
		default: result = 0;
	}
	return result;
}


//User.cpp --- 客戶端

#include Factory.h
#include iostream

int main()
{
	using namespace std;

	operate myOpera;

	cout<>myOpera.number_a;

	cout<>myOpera.number_b;

	cout<>myOpera.sign;

	float my_result = myOpera.calculate();
	cout<

上面就是 OOP 模式了。咱們繼續設計模式,下面實現工廠模式。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved