今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

这俩个模式结合简单说下优缺点,主要还是结合代码一起分析,很容易学会,策略模式是一种定义算法的模式,主要是以相同的方式调用所有的算法,减少了各种算法的耦合,另外一个是可以单独测某个算法,避免出现整体失误。

先给大家看一段代码,这是简单工厂模式下实现简单收银系统

按三步曲来,先定义工厂类

今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

再抽出超类

今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

这个地方给大家解释下为什么要用抽象类和抽象方法,其实用实体类和实体方法也可以实现,不过这里要考虑,如果类里面方法较多的情况下,容易遗忘去重写某些方法,这里主要是起了一个提示作用。

最后一个是算法类,其实这里面父类就是算法类,所有子类重写算法,子类就是算法类,这是其中一个算法子类

今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

客户端代码就如下所示

今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

功能到这里我们算是已经完成了,不过眼尖的会发现,工厂类使用了switch case语句,这样的话,每次都要从上到下判断一次,不符合我们优化代码效率的目的,当你的父类是算法类父类的时候,你就应该考虑使用策略模式,这个模式就是为了这种情况下研究出来的,接下来我们看看策略模式结合反射,其他类不变,我们不要工厂类,换成新的策略类

今天来写写设计模式----------------------------简单工厂模式结合策略模式,另外加入了反射

我们在客户端使用反射模式去调用你想要的那个类和方法,这样一来,就做到了完全分离,你再加个算法类的话,只要加个子类和方法就可以了,做到了真正的低耦合,这种就是代码的优化了!