設計模式之簡單工廠模式

2021-10-07 02:57:02 字數 2117 閱讀 3545

具體實現

簡單工廠

實驗測試

如何分清業務邏輯和介面:

一般顯示在介面上的,我們肉眼可見的屬於介面,而我們看不見的,內部運算屬於業務邏輯

對於乙個加減運算來說:

運算過程和法則---->業務邏輯

介面---->我們的輸入

我們主要使用繼承和多型來實現簡單的加減運算,至於為啥需要這兩個,我們是如何提煉出來的,我們後文中分解!

面對這樣乙個問題:

思路:提煉共性:所有的運算都有兩個數,然後得到乙個結果

於是我們就有了下面的類:

using system.collections;

using system.collections.generic;

using unityengine;

/// /// 計算方法

///

public class oprition

set}

private float number_2;

public float number_2

set}

/// /// 計算

///

///

///

public virtual float getresult()

}

這個類相當於父親,有若干個兒子,「+」「-」「x」"/"等等,於是有了下面的類:

using system.collections;

using system.collections.generic;

using unityengine;

/// /// 加法

///

public class opritionadd : oprition

}

using system.collections;

using system.collections.generic;

using unityengine;

//減法

public class opritionsub : oprition

}

他們都有乙個共性,都屬於演算法的兒子,所以都需要繼承父親oprition

多型的含義呢:字面意思,同樣的物件可以有多重的含義!

對應我們的專案:

運算都需要得到乙個結果,那麼我們就有乙個getresult()的方法,我們想要我們所有的兒子都需要有這個方法,但是他們都是不一樣的,那麼我們就用到了多型,多型的用法呢!在c#裡面主要是:

virtual和override兩個關鍵字,virtual定義的方法為虛方法,override為重寫虛方法

虛方法

/// /// 計算

///

///

///

public virtual float getresult()

重寫
public override float getresult()

顧名思義:工廠的作用肯定是生產乙個物件出來,那麼我們生產什麼東西呢,對應我們的專案,那麼就是生產乙個運算(oprition),至於我們想要生產那種,根據我們的輸入和需求來!

using system.collections;

using system.collections.generic;

using unityengine;

//工廠

public static class opritionfactory

return oprition;

}}

這裡是測試**:

using system.collections;

using system.collections.generic;

using unityengine;

public class hello

}

列印結果:30

**python資料結構與演算法-實戰篇

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

設計模式 工廠模式之簡單工廠

工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...

設計模式 工廠模式之簡單工廠

我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...