簡單工廠模式和策略模式

2021-06-14 03:35:06 字數 1886 閱讀 8666

兩種模式如出一轍,基本方式都是通過將相同的行為封裝在乙個抽象父類(或介面)中,然後子類繼承該抽象父類並對該相同的行為進行不同的實現。

簡單工廠模式:目的在於根據不同的條件建立不同的子類,工廠類的作用就是建立類。

策略模式:比簡單工廠模式多了乙個context類,該類中保持對乙個策略父類的引用。該模式對策略類的方法呼叫進行封裝,但在客戶端還是要進行選擇性地手工建立策略類並作為引數傳入context.

還可以將工廠模式和策略模式結合使用,進一步客戶端的選擇建立子類放到context中。

cashstrategy抽象父類:

public

abstract

classcashstrategy

cashrebatestrategy子類:

public

classcashrebatestrategyextendscashstrategy

publiccashrebatestrategy(doublerebate)

//get set

cashreturnstrategy子類:

public

class cashreturnstrategyextendscashstrategy

returnmoney;

}publiccashreturnstrategy(doublereturncondition,doublereturncount)

//get set

cashnormalstrategy子類:

public

classcashnormalstrategyextendscashstrategy

strategyfactorycontext上下文環境類:

public

classstrategyfactorycontext

// 結合簡單工廠模式(使用構造器)

publicstrategyfactorycontext(stringselete)

}//

結合簡單工廠模式(使用具體方法進行初始化)

//  publicvoid createstrategyfactory(string selete) //

} // 封裝了對相同行為的不同實現的呼叫

public

doublecontextinte***ce(doublemoney)

public

classtestclient

}具體例項就是在當前專案中,玩家可以選擇將武將轉化為經驗書、金幣等情況,其實就是不同的轉化策略:

策略模式和簡單工廠模式

策略模式和簡單工廠模式有什麼不同額?最近在學習設計模式,遇到這兩種模式,有點兒迷糊?簡單工廠模式 public class operation return result private double numbera 0 public double numbera set private doubl...

簡單工廠模式和策略模式

簡單工廠模式是用來當客戶端要判斷採用什麼方法時,把這部分判斷分離出來,放到工廠類中,只要輸入可以鑑別的資訊時就可了,比如計算時的符號,然後在工廠類中判斷用哪種運算類。選擇類 而策略模式中,在工廠類中呼叫的類,他的方法的引數形式可能是不同的,這時候就是不同的策略,那麼就需要建立不同的策略,這時候我們就...

策略模式和簡單工廠

一 商場收銀軟體 題目給乙個商場收銀軟體 如果給平時做的話 可能就是兩個文字框,數量 金額得到結果 相信這是大多數初學者的通病 既然今天學習的是策略模式,就要想到之前的簡單工廠,如果是正常模式,就應該如上圖所示,但是有時候做活動,需要打折,或者商品滿500返回100這樣之類的,這時候就有了別的情況出...