浅谈简单工厂模式和策略模式

Posted 知晓的老巢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈简单工厂模式和策略模式相关的知识,希望对你有一定的参考价值。

1、简单工厂模式如图

代码:

 

缺点:简单工厂模式需要客户端认识两个类,Cash和CashFactory

优点:子类的实例化被工厂封装了起来,客户端看不到

2、策略模式如图

代码:

public class Context{
    Strategy strategy;
    public Context(Strategy strategy){
        this.strategy =  strategy;
    }
    public double getResult(double money){
        return strategy.acceptCash(money);
    }
}

缺点:客户端(测试端)完全暴露了实现的子类 

优点:策略模式的优点是简化了单元测试,因为每一个算法都有自己的类,可以通过自己的接口进行单元测试

 

我们需要做的是把简单工厂模式和策略模式结合起来,做到效果的最优

优点:这样我们在客户端实例化的是Content的对象,调用的是Content的方法getResult这使得具体的收费算法彻底与客户端分离,连算法的父类Cash都不让客户端认识

 

以上是关于浅谈简单工厂模式和策略模式的主要内容,如果未能解决你的问题,请参考以下文章

简单工厂模式和策略模式的差别

面试官:谈谈简单工厂模式和策略模式的区别?我居然答不上来。。

策略模式与简单工厂模式

| 啥是工厂模式和策略模式?

浅谈简单工厂,工厂方法,抽象工厂的区别和使用

简单工厂模式与策略模式的优缺点以及它们的区别