Java设计模式(七)策略模式 模板模式
生活随笔
收集整理的這篇文章主要介紹了
Java设计模式(七)策略模式 模板模式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(十三)策略模式
策略圖案限定了多個(gè)封裝算法,該算法可以相互替換包。法的客戶。借用還有一位大神的樣例。
interface ICalculator{public int calculate(String exp); } abstract class AbstractCalculator{public int[] split(String exp,String opt){String array[] = exp.split(opt);int arrayInt[] = new int[2];arrayInt[0] = Integer.parseInt(array[0]);arrayInt[1] = Integer.parseInt(array[1]);return arrayInt;} } class Plus extends AbstractCalculator implements ICalculator{public int calculate(String exp){int arrayInt[] = split(exp, "\\+");return arrayInt[0]+arrayInt[1];} } class Minus extends AbstractCalculator implements ICalculator{public int calculate(String exp){int arrayInt[] = split(exp,"-");return arrayInt[0] = arrayInt[1];} } class Multiply extends AbstractCalculator implements ICalculator{public int calculate(String exp){int arrayInt[] = split(exp,"\\*");return arrayInt[0] * arrayInt[1];} } public class Strategy {public static void main(String[] args){String exp = "2*8";ICalculator cal = new Multiply();System.out.println(cal.calculate(exp));} } 系統(tǒng)提供不同算法的實(shí)現(xiàn)。對于各種算法封裝好,用戶決定使用哪個(gè)算法。策略模式多使用在算法決策系統(tǒng)中。比如電子商務(wù)價(jià)格算法。跟抽象類非常相似,我感覺。(十四)模板方法模式
模板方法的意義是一個(gè)父類方法提供大部分的算法,子類完畢剩余的算法。父類調(diào)用子類的實(shí)現(xiàn)。
abstract class TemplateCalc{//主方法public final int calculate(String exp,String opt){int array[] = split(exp,opt);return calculate(array[0],array[1]);}public int[] split(String exp,String opt){String array[] = exp.split(opt);int arrayInt[] = new int[2];arrayInt[0] = Integer.parseInt(array[0]);arrayInt[1] = Integer.parseInt(array[1]);return arrayInt;}abstract public int calculate(int num1,int num2); } class PlusTemp extends TemplateCalc{public int calculate(int num1,int num2){return num1 + num2;} } public class Template{public static void main(String[] args){TemplateCalc tem = new PlusTemp();System.out.println(tem.calculate("12*23", "\\*"));} }將一個(gè)子類初始化,調(diào)用父類的 calculate 方法。父類運(yùn)行完分解,調(diào)用子類的相加,事實(shí)上 * 這并不意味著乘法,只是一個(gè)象征分裂。版權(quán)聲明:本文博客原創(chuàng)文章。博客,未經(jīng)同意,不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/mfrbuaa/p/4609800.html
總結(jié)
以上是生活随笔為你收集整理的Java设计模式(七)策略模式 模板模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOs Linux 文件位置标记
- 下一篇: python学习日常-编码与字符串格式化