使用设计模式改写if/else或switch/case语句

发布时间 2023-09-16 15:43:45作者: Aaronqcd

在写代码的时候,经常会用到if/else语句或者switch/case语句。虽然很省事,但是没有体现到java的封装、继承、多态等特性。没有用到java的面向对象编程的精髓。

比如这种if/else语句:

String str = "菠萝";
if ("苹果".equals(str)) {
	System.out.println("又大又红的苹果");
}
else if ("菠萝".equals(str)) {
	System.out.println("又酸又甜的菠萝");
}
else if ("梨".equals(str)) {
	System.out.println("又甜又脆的梨");
}

我们应该如何使用设计模式改写呢?

第一种方式:使用策略模式

接口:Strategy

public interface Strategy {
    void comment();
}

苹果实现类:

@Component
public class Apple implements Strategy {
    @Override
    public void comment() {
        System.out.println("又大又红的苹果");
    }
}

菠萝实现类:

1 @Component
2 public class Pineapple implements Strategy {
3     @Override
4     public void comment() {
5         System.out.println("又酸又甜的菠萝");
6     }
7 }
View Code