使用面向对象技术解决商品打折问题(二)

原创 2004年09月18日 23:09:00


我们现在看在checkout方法中究竟要使用要使用CodePromotion这个类提供的那些信息,首先可以肯定,getPromotionAmount这个方法是必需的,而且我们希望能够得知某一定但为什么要打折,所以getDescription这个方法也是一定要有的,而user()是对promotion code使用过后进行的处理。所以一个更好的方法是定义一个接口,checkout方法中的参数类型使这个接口,而不是ColdPromotion这个类,这样一来,无论是那种打折,我们都可以通过这个接口实现。我们需要做的就是让我们的新的打折类实现这个接口。下面就是这个接口的定义:

interface Promotable{
 public float getPromotionAmount(float totalCharge)
 public boolean isValidate()
 public void use()
 public String getDescription()
}

本来以为这样一来可以高枕无忧了,但是转念一想有多了一份担忧,如果某一天销售人员提出丧心病狂的要求,几种打折一起使用该如何是好?其实这个问题也是可以解决的,那就是我们在checkout中传递的甚至不是Promotable这个接口,而是一个vector或者Promotable的数组,在checkout之前,我们把所有的打折信息放入到这个Vector中,在checkout的过程中,遍历这个Vector(或者数组)。甚至我们可以写一个专门管理promotion的管理类,让他来完成各种打折信息的创建,计算出总的折扣,记录各种打折的原因,进行打折后的处理工作。具体如何实现就要根据个人的好恶了。


版权所有:idilent 网站转载请注明作者 其他转载方式请与作者联系(idilent@yahoo.com.cn)。

面向对象三大特征和解决的问题

一:什么是“对象” 在计算机的世界里,对象(Object)就是进行研究的任何事物。小到螺丝钉,大道飞机大炮,都可以被看成是一个对象,每一个对象都有各自的属性和操作。以“狗”为例:颜色、体重等都是狗这...
  • dsa63
  • dsa63
  • 2014年02月04日 14:32
  • 1022

C++面向对象方法求解约瑟夫环问题

约瑟夫问题有很多种解法及其变种,这里的约瑟夫环问题是这样的: [b]约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数...
  • u010155023
  • u010155023
  • 2015年02月14日 12:39
  • 1032

面向对象和面向组件的区别

今天被问到你们项目是用面向对象做的还是面向组件做的   当时我就傻了  面向组件是什么?  于是查了些资料  觉得面向组件在效率上要比面向对象高不少  确实值得学习 现把面向对象和面向组件的区别贴出...
  • qq_20026817
  • qq_20026817
  • 2015年08月13日 12:00
  • 700

JAVA 面向对象之方法详解

本页面更新日期: 2016年07月18日前言 方法是类或对象 的行为特征的抽象. 方法是类或对象最重要的组成部分. 所有的方法都必需定义在类里. 方法不能独立存在. 方法在...
  • tmdlife
  • tmdlife
  • 2016年07月17日 23:08
  • 1991

使用面向对象的技术创建高级 Web 应用程序

JavaScript 对象是词典 在 C++ 或 C# 中,在谈论对象时,是指类或结构的实例。对象有不同的属性和方法,具体取决于将它们实例化的模板(即类)。而 JavaScript 对象却不是这...
  • VICONN
  • VICONN
  • 2014年05月29日 14:24
  • 485

【C#】——面向对象思想

C#这个东西听说时还是当时自己学C语言的时候,那时甚至都不知道什么叫C++,什么叫Java。更别说是面向对象的思想了。之前学到的都是面向过程的技术,实现一个功能要一点一点去理清逻辑,然后才能勉强的写出...
  • u013045214
  • u013045214
  • 2015年02月01日 19:22
  • 2580

对象建模方法与技术学习笔记(一)

面向对象为什么要面向对象面向对象的思想认为,在需求中人和物是相对稳定的,他们是事物的本质;而需求中的功能和行为是以人和物为主体的特征;人和物是相对稳定的,而功能和行为是易变的。因此,反映需求分析与软件...
  • u013745854
  • u013745854
  • 2015年08月01日 16:45
  • 1346

面向对象中的序列化和反序列化

序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创...
  • forLightWay
  • forLightWay
  • 2017年01月18日 17:36
  • 369

面向对象软件测试综述

面向对象软件测试综述 摘要:面向对象的软件测试是面向对象软件开发的不可缺少的一环,是保证软件质量、提高软件可靠性的关键。结合传统软件测试的方法和技术,并针对面向对象软件所具有的特征,将面向对象软件测...
  • xuqingbo6686
  • xuqingbo6686
  • 2016年02月04日 10:30
  • 1034

面向对象——创建对象的方式

创建对象的方式2016/10/21 笔记
  • tclyjy
  • tclyjy
  • 2016年10月27日 14:46
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用面向对象技术解决商品打折问题(二)
举报原因:
原因补充:

(最多只允许输入30个字)