一、简述
日常开发中,会遇见类似于使用不同方式发送消息,例如:邮件、短信。再或者碰见文章分享之类的需求。那么我们平时如果不是用设计模式来做的情况下,会出现很多个 if-else 或者 switch 语句块。这样的话,代码耦合性也会非常高,将来再增加一个需求,则会导致一直增加判断语句块。也违反了面向对象的开闭原则。那么我们有什么好的解决方式呢?今次,则用反射+策略模式来重构一下代码,使之更加灵活。
二、不使用反射的策略模式
抽象策略角色(接口)
publicinterfaceMyStragtegy{
Stringplay();
}
具体实现策略
CatStragtegy实现CatStragtegy接口
publicclassCatStragtegyimplementsMyStragtegy{
@Override
publicStringplay(){
String str="猫玩毛线球,玩的一团糟";
returnstr;
}
}
DogStragtegy实现atStragtegy接口
publicclassDogStragtegyimplementsMyStragtegy{
@Override
publicStringplay(){
String str="狗狗玩飞盘,玩的很开心";
returnstr;