工廠 策略 》簡單使用

2021-10-10 19:57:49 字數 1860 閱讀 6777

先看以下範例:

public class promotions 

/*** 不同的數字代表不同的打折方式

* @param num

* @param totalprice

* @return

*/private static integer getprice(int num, int totalprice)

return price;

}private static integer getthreezheprice(int totalprice)

private static integer gettwozheprice(int totalprice)

private static integer getonezheprice(int totalprice)

}

加入策略類,每種打折的實現在自己的策略類實現,定義計算**的總策略類,具體的策略類繼承總抽象類:

public abstract class calculationprice
public class onecalculation extends calculationprice 

}

public class twocalculation extends calculationprice 

}

public class threecalculation extends  calculationprice

}

public class promotions 

/*** 不同的數字代表不同的打折方式

* @param num

* @param totalprice

* @return

*/private static integer getprice(int num, int totalprice)

return calculationprice.getprice(totalprice);

}/*private static integer getthreezheprice(int totalprice)

private static integer gettwozheprice(int totalprice)

private static integer getonezheprice(int totalprice) */

}

加入工廠類:

public class promotionsfactory 

return calculationprice;

}}

public class promotions 

/*** 不同的數字代表不同的打折方式

* @param num

* @param totalprice

* @return

*/private static integer getprice(int num, int totalprice)

return calculationprice.getprice(totalprice);*/

}/*private static integer getthreezheprice(int totalprice)

private static integer gettwozheprice(int totalprice)

private static integer getonezheprice(int totalprice) */

}

策略與簡單工廠結合

策略模式是一種定義一系列演算法的方法,從概念上看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有的演算法,減少了各種演算法類與使用演算法類之間的耦合。策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助於析取出這些演算法中的公共...

簡單工廠與策略模式

專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。它又稱為靜態工廠方法模式,屬於類的建立型模式。簡單工廠模式的實質是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類 這些產品類繼承自乙個父類或介面 的例項。該模式中包含的角色及其職責 1 工廠 creator 角色 簡單...

策略模式和簡單工廠

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