栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

购物车程序的面向对象设计:第1次任务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

购物车程序的面向对象设计:第1次任务

小组成员:

徐佳澎、陈俊威

任务分配
任务成员
编码规范、前期调查、博客制作陈俊威
面向对象设计、功能设计徐佳澎
前期调查 1.京东商城中的购物车


每添加一件不同的商品到购物车中,购物车会生成一个条目,条目中显示商品名、单价、商品数量以及小计。购物车中还包括删除商品的功能,也就是直接删除一件商品的条目。

2.编码规范

阿里巴巴Java开发手册 终极版(1.3.0)

代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式
也要避免采用。
正例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3

类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO /

DTO / VO / AO
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion

方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

正例: localValue / getHttpMessage() / inputUserId

包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

正例: 应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考
spring 的框架结构)

各层命名规约:

A) Service/DAO 层方法命名规约
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀。
3) 获取统计值的方法用 count 做前缀。
4) 插入的方法用 save/insert 做前缀。
5) 删除的方法用 remove/delete 做前缀。
6) 修改的方法用 update 做前缀。
B) 领域模型命名规约
1) 数据对象:xxxDO,xxx 即为数据表名。
2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
3) 展示对象:xxxVO,xxx 一般为网页名称。
4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。

面向对象设计

在购物时首先要选定心仪的商品,而商品必定包含商品名、商品单价这两个基本属性,因此确定一个Commodity类,这个类用于设定取用某一个商品的名称以及单价。在选定心仪的商品后,放入购物车中,但是心仪的商品不一定只有一种,每一种不同的商品会在购物车中生成不同的条目,每一个条目显示了每一种商品的名称、单价、购买的数量,通常为了方便用户,购物车中的每一个条目还会提供一个“小计”让用户知道自己购买一种商品的总价。因此“购物车系统”要能够存储多种商品,每一种商品生成一个条目,显示商品的名称、单价、购买的数量以及小计。于是设定Cartitem类,用于存放购买的商品的条目信息。回到“购物车”系统本身,最基本的功能是加入、存储、删除商品的信息同时也需要显示购物车中的内容,因此设定Cart类,采用ArrayList的方法,ArrayList存储的信息是上面提到的Cartitem类的信息。在Cart类加入addList(添加商品到购物车)、Deleteitem(从购物车中删除某一商品)、以及total(计算购物车中的总价)方法。为了用户使用方便还可以加入“清空购物车”方法。

系统功能描述


流程图:

UML类图

面向对象的封装性

商品名称、单价是购物车中商品的基本属性,这些属性在程序的运行过程中是不可改变的,面向对象的封装性把类内部的信息统一保护起来,防止外包随意修改内部数据,保证数据的安全性,保证外部尽可能正确地使用这个类。
封装性包括属性的封装,方法的封装,类的封装,组件的封装。
在Commodity类中name、price、number的构造与调用以及Cartitem类中name、price、number的构造与调用体现了面向对象的封装性。

关键包结构与代码以及流程图

Commodity类,内含商品的属性(名称、价格以及数量)

public class Commodity {
	private String name;
	private int price;
	private int number;
	 public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public Commodity(String name,int price,int number) {
		this.name=name;
		this.number=number;
		this.price=price;
	}
	public void Decrease(int number) {
		this.number-=number;
		
	}
	
}

Cartitem类,用于存放商品加入购物车后生成的条目的信息。存储购物车中某一类商品的商品名、单价、数量以及小计。

public class Cartitem {
	private String name;
	private int price;
	private int number=0;
	public Cartitem(String name,int price,int number) {
		this.name=name;
		this.price=price;
		this.number+=number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
}

cart类,实现“购物车”功能的主要的代码,内含addList(添加商品到购物车)、Deleteitem(从购物车中删除某一商品)、以及total(显示购物车中的总价)的方法。

import java.util.ArrayList;
public class Cart {

	private ArrayList items=new ArrayList<>();
	public void addList(String name,int price,int number)//添加商品进购物车
	{
		int index=0;//记录该商品是否已经添加进购物车
		int i=0;
		for( i=0;i ShowCart(){//输出购物车
		return this.items;
	}
	public int total() {//计算价格
		int alltotal=0;
		for(int i=0;i 

ShoppingCenter类,存储商店中的商品名称以及单价、数量。

import java.util.ArrayList;

public class ShoppingCenter {
	private ArrayList list=new ArrayList<>();
	public void addList(String name,int price,int number)
	{
		list.add(new Commodity(name, price, number));
	}
	public ArrayList ShowList(){
		return this.list;
	}
	{
		list.add(new Commodity("牙膏",10,500));
		list.add(new Commodity("电脑",2000,10));
		list.add(new Commodity("电饭锅",2000,10));
	}
	public int  HaveCommodity(String name) {
		int i=0;
		for( i=0;i 

添加商品方法:

public void addList(String name,int price,int number)//添加商品进购物车
	{
		int index=0;//记录该商品是否已经添加进购物车
		int i=0;
		for( i=0;i 

流程图

删除商品方法

	public void Deleteitem(String name) {
		int index=0;//记录该商品是否已经添加进购物车
		int i=0;
		for( i=0;i 

流程图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号