行為型模式 策略模式

2021-09-24 17:58:46 字數 1219 閱讀 7983

定義:

也叫政策模式

定義一組演算法,將每個演算法都封裝起來,並且使它們可以相互轉換

角色:環境角色:上下文角色,相當於呼叫者

抽象策略角色:對決策略,演算法進行抽象,定義每個決策或演算法必須有的方法和屬性

具體策略:抽象的具體實現

優點:策略模式提供了管理相關的演算法族的辦法。

提供了可以替換繼承關係的辦法

避免出現多重條件轉換語句

缺點:客戶端必須知道所有的策略類,並決定使用哪乙個

造成很多的策略類

場景:多個類只是在演算法或者行為上稍有不同的場景

演算法需要自由切換的場景

需要遮蔽演算法規則的場景

例項:商品打折結算

package 策略模式;

public abstract class discountstartegy

public int getnumber()

public discountstartegy(double price,int number)

public abstract double calculate();

}

package 策略模式;

public class wudiscount extends discountstartegy

@override

public double calculate()

}

package 策略模式;

public class eightdiscount extends discountstartegy

@override

public double calculate()

}

package 策略模式;

public class ninediscount extends discountstartegy

@override

public double calculate()

}

package 策略模式;

public class main

}

無折扣:240.0

八折:199.36

九折:216.0

行為型模式 策略模式

策略 class salestrategy class strategya public salestrategy class strategyb public salestrategy 策略使用者 class salesman void yell salestrategy m strategy 呼...

行為型模式 策略模式

liebrother原文 行為型模式 策略模式 十一大行為型模式之五 策略模式。姓名 策略模式 英文名 strategy pattern 價值觀 集計謀於一身 個人介紹 define a family of algorithms,encapsulate each one,and make them ...

行為型模式 策略模式

liebrother原文 行為型模式 策略模式 十一大行為型模式之五 策略模式。姓名 策略模式 英文名 strategy pattern 價值觀 集計謀於一身 個人介紹 define a family of algorithms,encapsulate each one,and make them ...