zoukankan      html  css  js  c++  java
  • 浅谈简单工厂模式和策略模式

    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都不让客户端认识

  • 相关阅读:
    POJ -- 3468
    HDOJ--1698
    简单的API应用
    Linux引导流程
    Python 实现网络爬虫小程序
    codeforce
    Count the string -- HDOJ 3336
    初次运行 Git 前的配置
    leetcode244- Shortest Word Distance II- medium
    leetcode243- Shortest Word Distance- easy
  • 原文地址:https://www.cnblogs.com/hgc-bky/p/5903656.html
Copyright © 2011-2022 走看看