策略模式简解:
我们还是以娱乐圈的那些事来做例子
电影名:
名词解释:顾名思义,策略模式就是将一定的算法或者一定的解决方案抽象成一个策略,在调用时候进行切换。
主要参与者:
1.演员:一个标记为某个策略的借口,定义些公用的方法。每次必出场。
2.主演:具体策略的实现者,实现策略借口。
3.导演:决定谁出场,必须拥有所有演员的名单,即持有一个策略接口的应用。
伪代码实现
1.演员:策略接口
2.主演:具体策略实现者
3.导演:调度者, 调度演员出场
4.电影上映:
我们还是以娱乐圈的那些事来做例子
电影名:
名词解释:顾名思义,策略模式就是将一定的算法或者一定的解决方案抽象成一个策略,在调用时候进行切换。
主要参与者:
1.演员:一个标记为某个策略的借口,定义些公用的方法。每次必出场。
2.主演:具体策略的实现者,实现策略借口。
3.导演:决定谁出场,必须拥有所有演员的名单,即持有一个策略接口的应用。
伪代码实现
1.演员:策略接口
public interface IStrategy
{
public void A(); //方法A
}
2.主演:具体策略实现者
public class Zhouxingxing implements IStrategy
{
public void A()
{
//具体的实现
}
}
public class ZiXia implements IStrategy
{
public void A()
{
//具体的实现
}
}
3.导演:调度者, 调度演员出场
public class Director
{
private IStrategy stratery //持有演员的名单
public Director(IStrategy stratery)
{
this.stratery = stratery //决定哪个演员出场
}
public void A()
{
this.stratery.A(); //让演员表演
}
}
4.电影上映:
public class Show
{
//导演出现,决定使用周星星
Director director = new Director(new Zhouxingxing());
//周星星出场
director.A();
//导演决定使用紫霞了
Director director = new Director(new ZiXia());
//紫霞出场
director.A();
}