zoukankan      html  css  js  c++  java
  • 购物车中设计模式

                  

        提到到设计模式,很多人可能会困惑,甚至是反感.到处都看到文章说设计模式是如何的重要,但是自己写代码的时候却发现很少用到设计模式,甚至可能觉得这是个沽名钓誉的东西,谈不清也说不明.

        确实我之前也觉得设计模式是非常的高深,很难接触一二,但是通过不断的写代码,写完后再回顾总结的时候,却发现设计模式确实给我们指出了一条明道,只有通过实际项目的体会,才能明白其中道理,就像兵书读的再多,没有实际带兵打过仗,不过是纸上谈兵而已.

        我在不断工作中时常会停下来做些思考,希望能给写过的代码找到一些归宿,能够让这些代码能够更好的被复用,易扩展.

        因为做的电子商务网站,接触到最多的就是各种各样的打折方式了,逢年过节就要搞一个促销,比如什么满300送100了,买一件第二件对折了,什么商品的积分翻倍了,什么买三送一了,总之就是非常的多.

        之前写代码很规矩,老老实实的写,购物车中有多少商品,数量是多少,然后价格乘以数量就ok了.后来就不对劲了市场部总是提出一个又一个折腾人的促销方式,没办法,得满足啊,谁叫咱是程序员呢,呵呵.

        写了2个,3个促销方式之后,发现了他们有很多通用的地方,这个时候就想谋求有什么好的解决方案了.既然他们有很多公共的地方,那么就可以把他们抽象出来放在一个父类里面,其他的促销方式继承这个父类,然后重写里面的计算方法就可以了.

    比如:

     

    Code


    这里就涉及到职责单一模式,简单改成模式和策略模式.

    在学习设计模式的过程中,也能不断的体会到面向对象的魅力.

    职责单一就是一个类的功能要越少越好,只有一个可以引起他改变的因素,这样他们功能很单一,便于复用不容易出错.

        简单工厂模式就是在不同的情况下能够给我们提供不同的类型.

    策略模式,其实跟简单工厂模式差不多,就是做了进一步的封装,

  • 相关阅读:
    day56 js收尾,jQuery前戏
    解决:No module named 'haystack.urls'
    用PicGo+Gitee(码云)搭建Markdown图床
    Python正课138 —— 基础扩展4 django
    Python正课140 —— DRF 进阶1 序列化、增删改查
    Markdown基本语法
    Python正课139 —— DRF 入门1
    用PicGo+GitHub+Typora搭建个人图床
    解决django.core.exceptions.ImproperlyConfiguredmysqlclient 1.3.13 or
    解决:Django中AttributeError:'str'objects has no attribute 'decode'
  • 原文地址:https://www.cnblogs.com/xinzhyu/p/1559038.html
Copyright © 2011-2022 走看看