当在处理同一类问题的时候,往往根据不同的情况使用不同的处理逻辑。比如根据用户选择来判断用户使用哪种支付方式,针对用户选择的支付方式,程序会自动的调用处理逻辑。

    通常我们的做法就是在一个类中使用switch或者if...else来做条件判断。当然在所处理的分支比较少的时候我们可以这样做。但是当我们需要对它进行扩展或者是进行维护的时候,我们就会遇到类会变庞大或者维护的时候影响到其他地方。其实这个就是因为设计的类没有遵循低耦合高内聚的面向对象原则。

    我们可以选择策略模式,将共同的操作抽象出来作为一个接口。我们的核心调用类只需用拿到接口的实现类,调用操作方法即可。这样核心调用类根本不用关心具体调用的是哪个实例,相当于是统一处理。

    请参考通过策略模式来模拟购物支付示例。源代码参考:https://github.com/sgyyz/java-pattern-demo


    后续会对更多的Java设计模式通过实际示例进行更好的展示,让更多人理解设计模式,同时能应用到自己的实际开发中。如果有不对的地方请指出,大家共同探讨。