在软件行业混了快7年了,从刚入行就开始看设计模式,之后是每年看一遍,每一遍都有不同的理解,目前来说也只能算是对OOA&OOD有了初步了解,故斗胆把自己所学写成文章,供大家分享与讨论,有不足之处也请大牛们指正。
下面就从一个比较简单和直接的模式,策略模式说起。
说来策略,可以简单理解为方法,一个策略就是一个方法,这个模式就是把一个方法定义的不同实现进行分离,然后调用者可以动态地使用这些方法实现。
比如上班这件事,有人开车上班,有人坐公交上班,有人走着上,有人坐地铁上,超人可能就是飞着去上班。。。,这一个上班的方式就有多种方法(策略),现在如果有一个需求说是要展示公司员工上班方式,下面就用传统方式和策略模式进行实现。
传统方式,
if(张三)
{
Console.WriteLine("我开车上班");
}
if(李四)
{
Console.WriteLine("我走路上班");
}
...
无限的if语句
如果用策略模式,只需要如下一句代码:
class ShowType{
privite interface MyWorkType;
public ShowType(IWorkType workType)
{
this.MyWorkType = workType;
}
public string Show()
{
this.MyWorkType.Show();
}
}
这个类的使用者,只需要调用一个方法