策略模式允許在允許中替換演算法。要實現該解決方案,需要將每個演算法表示為strategy(策略)類。然後應用程式委託當前的strategy類來執行特定於策略的演算法。
下面示例使用role(充當strategy)介面來宣告策略行為和倆個具體來——buyer和seller來實現不同的行為:
role
介面:
package strategy;
public inte***ce role
seller
類:希望銷售的產品都設定了
20%的利潤率
package strategy;
public class seller implements roleelse
}}
對於buyer來說,他要買下此種商品,必須有乙個限制額。
package strategy;
public class buyer implements role
public boolean sisatisfied(product product, double price)
return false;
}}
context這裡是指:管理role的person類。person類與role介面又乙個關聯,另外值得注意的是,role又乙個setter和getter方法,它允許乙個人的角色在程式執行時發生變化。以後,其它的role實現物件(如broker(中間)等)都可以被新增。因為它們對特定的子類沒有依賴。下面時person類:
package strategy;
public class person
public role getrole()
public void setrole(role role)
public boolean statisfied(product product, double price)
}
其它類:本示例的product類及執行的main類:
1
、product
package strategy;
public class product
public string getname()
public void setname(string name)
public string getdescription()
public void setdescription(string description)
public double getcost()
public void setcost(double cost)
}
2、main類
package strategy;
public class main
if(!lilei.statisfied(house, 6000000))
if(lilei.statisfied(house, 390000) && hanmeimei.statisfied(house, 390000))
} }}
通過實現策略模式,可以在執行時修改乙個物件的行為而不影響它的實現。這是軟體設計中非常強大的工具。 java 策略模式
例如 public class test inte ce stra class add implements stra class sub implements stra class enviroment public int returnans int a,int b 不同的類實現相同的介面,然後...
java 策略模式
策略模式就是好多演算法,方式封裝到一起,然後根據不同的需求選擇不同的演算法 例子 首先乙個介面 public static inte ce a 然後實現該介面的類 就是不同的演算法類 public static class b implements a public static class c i...
java策略模式
head first對策略模式的定義是 封裝一系列演算法,並把它們包裝起來,使他們可以相互替換。在該書的第一章節模擬鴨子遊戲裡面,講用策略模式改寫,但本身用了 這個模式,這裡我理解的是一般使用策略模式就有一定程度的使用 模式。看下面的例子。這是乙個 模式的例子 package pattern.det...