第178章
return0;
3、环境角色
publicclassContext{
大B:“1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态的让一个对象在许多行为中选择一种行为。2、如果系统需要动态地在几种算法中选择一种。那么这些算法可以包装到一个个的具体算法类里面,而这些算法类都是一个抽象算法类的子类。3、一个系统的算法使用的数据不可以让客户端知道。策略模式可以避免让客户端涉及到不必要接触到的复发的和只与算法有关的数据。”
使用案例:
AWT中的LayoutManager,Swing中的Border.
publicContext(IStrategystrategy){
=strategy;
/**策略方法*/
publicdoubleadd{
return0;
4、客户端调用
publicclassMain{
/**
*amargs
*/
publicstaticvoidmain(Stringargs){
//TODO自动生成方法存根
Contextcontext=newContext(newConcreteStrategy1);
;//执行算法。
context=newContext(newConcreteStrategy2);
;//执行算法。
5、执行结果:
.的加法运算
.的加法运算
代码例子
1、抽象策略
//TODO自动生成方法存根
(.getName+“的加法运算”);
(.getName+“的加法运算”);
小A:“策略模式应该怎么去应用它?”
publicinterfaceIStrategy{
/**策略方法*/
/**示意性算法*/
return0;
publicclassConcreteStrategy2implementsIStrategy{
publicdoubleadd{
2、具体策略,这里我以两个具体策略为例
publicclassConcreteStrategy1implementsIStrategy{
/**环境角色类*/
privateIStrategystrategy;
publicdoubleadd{
//TODO自动生成方法存根
publicabstractdoubleadd;
其他人正在读 :【从婴儿开始入道】【凡人修仙:从废灵根开始】【成就魔尊,签到养成三百年】【重生就别当舔狗了】【从炼丹术开始肝熟练度】【穿成恶毒娘,我携巨资带三崽逃荒】【万倍返还,为师举世无敌】【因人而异的系统】【都市第一至尊】【说好的文弱谋士,你一人战三英?】【美漫从渣康学徒开始】【制符人】【陈浩苏雪】【诡异命纹:开局铭刻十大阎罗】【四合院里的火车司机】【长生从猎户开始】【救命,妈妈送了只魅魔给我!】【顾命大臣】【世界首富之我是股神】【满朝文武都能听到我的心声】【净土边缘】【金丹是恒星,你管这叫修仙?】【人生副本游戏】【我能看到商品价格曲线】【我不是戏神】【从水猴子开始成神】【绝世天龙】【游戏王:决斗者的奇幻冒险】【天下第一萌夫】【我儿明明是纨绔,咋成帝国之虎了】