Tmall_bean

一:分析需求,从而发现有以下类

按照个人习惯,从用户角度以及系统角度两个角度去探寻类,并且缕清其中的关系:

用户

1 user类 有id name password 参数,getset方法,并且有一个方法用于隐藏用户名字(有的时候,方法不一定能实时想到,可能后期才能想到需要的方法,这个时候一般是看客户的需求文档,若没有需求文档则只能通过自身经验进行)

2 review类,既然是做一个购物网站,自然要有评价,id ,content, uid(user id),pid(product id),createDate,有的评论还有追评功能、图片评论、视频评论,这些暂时不提,先最基本的文字评论。

系统

3 category类,选购的时候,进入系统,显然是先在一个大的分类里面去寻找,id,name,

4 product类,产品类,产品自然是必不可少的,id,name,originalPrice,promotePrice(因为很多都有优惠价),stock,包括炫酷的标题subTitle。

5 property类,值类,比如电脑:CPU,处理器等多种property,所有的电脑类都包含的基本参数,有id,cid,name

6 propertyValue 上方的值,需要加上id,pid,ptid,name,知道是哪个产品,哪个类的参数。

7 order类,订单类,买了东西自然有订单,id,orderNumber(订单号),receiver(收货人),address(收货地址),telephone(电话),pid,createDate,种种,只是为了证明你此时此刻一共花了多少钱,买了什么东西,

8 orderItem类,订单项,因为很多地方会比拼到订单数量,且为了不糅杂,只有id,uid,pid,oid(哪个单子里买的,具体信息),num

9 productimage 存放产品的图片,可以用来显示图片,后期再修改

 

 

 

分析完类之后,可以总结这种思想方式,从用户的角色,后台的角色进行分析;或者通过自然事件发生的时间进行分析。

 

可以有以下类

User

package tmall.bean;

public class User {
	private String password;
	private String name;
	private int id;
	/**
	 * 这个类比较简单,分别对应账号、密码、id
	 * 并且有一个隐藏用户名的方法
	 * */
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getAnonymousName() {
		if (null == name) {
			return null;
		}
		if (name.length() <= 1) {
			return "*";
		}
		if (name.length() == 2) {
			///因为并不想改变name的值,只是这个方法需要隐蔽名字而已,所以没有对name更改
			return name.substring(0, 1) + "*";
		}
		if (name.length() >= 2) {
			char[] cs =name.toCharArray();
			for (int i = 1; i < cs.length-1; i++) {
				cs[i]='*';
			}
		}
		return "a";
	}

}

Review类

package tmall.bean;

import java.util.Date;

public class Review {
	private String content;
	private Date createDate;
	private User user;
	private Product product;
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
}

Category类,注意观察与Product类的联系

package tmall.bean;

import java.util.List;

public class Category {

	private String name;
	private int id;
	List<Product> products;
	List<List<Product>> productsByRow;
	//因为productsByRow,当后期页面要显示的时候,一个分类只有4个示例,有很多排,这里就需要了
	/**
	 * {
	 * 三行八列
	 * 	{1,2,3,4,5,6,7,8}
	 * 	{A,B,C,D,E,F,G,H}
	 * 	{X,X,X,X,X,X,X,X}
	 * 
	 * }
	 * */
	//比如冰箱分类 有三个子,但是每个子都是一个集合,形成了三排 每排对应其对应的集合,用于展示,并不是说本身需要这个
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Category [name=" + name + "]";
	}

	public List<Product> getProducts() {
		return products;
	}

	public void setProducts(List<Product> products) {
		this.products = products;
	}

	public List<List<Product>> getProductsByRow() {
		return productsByRow;
	}

	public void setProductsByRow(List<List<Product>> productsByRow) {
		this.productsByRow = productsByRow;
	}

}

Product类

需关注以下几点:category,和Category类形成对比,可看出对应关系,一个目录可以有多个product

而产品图片根据需要也划分了首页(从一般图片中选第一个,默认图片)、一般图片、长图片、图片等四类,销量、评论数等

package tmall.bean;

import java.util.Date;

import java.util.List;

public class Product {
	private String name;
	private String subTitle;
	private float orignalPrice;
	private float promotePrice;
	private int stock;
	private Date createDate;
	private Category category;
	private int id;
	private ProductImage firstProductImage;
	private List<ProductImage> productImages;
	private List<ProductImage> productSingleImages;
	private List<ProductImage> productDetailImages;
	private int reviewCount;
	private int saleCount;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSubTitle() {
		return subTitle;
	}
	public void setSubTitle(String subTitle) {
		this.subTitle = subTitle;
	}
	public float getOrignalPrice() {
		return orignalPrice;
	}
	public void setOrignalPrice(float orignalPrice) {
		this.orignalPrice = orignalPrice;
	}
	public float getPromotePrice() {
		return promotePrice;
	}
	public void setPromotePrice(float promotePrice) {
		this.promotePrice = promotePrice;
	}
	public int getStock() {
		return stock;
	}
	public void setStock(int stock) {
		this.stock = stock;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public Category getCategory() {
		return category;
	}
	public void setCategory(Category category) {
		this.category = category;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String toString(){
		return name;
	}
	public ProductImage getFirstProductImage() {
		return firstProductImage;
	}
	public void setFirstProductImage(ProductImage firstProductImage) {
		this.firstProductImage = firstProductImage;
	}
	public List<ProductImage> getProductImages() {
		return productImages;
	}
	public void setProductImages(List<ProductImage> productImages) {
		this.productImages = productImages;
	}
	public List<ProductImage> getProductSingleImages() {
		return productSingleImages;
	}
	public void setProductSingleImages(List<ProductImage> productSingleImages) {
		this.productSingleImages = productSingleImages;
	}
	public List<ProductImage> getProductDetailImages() {
		return productDetailImages;
	}
	public void setProductDetailImages(List<ProductImage> productDetailImages) {
		this.productDetailImages = productDetailImages;
	}
	public int getReviewCount() {
		return reviewCount;
	}
	public void setReviewCount(int reviewCount) {
		this.reviewCount = reviewCount;
	}
	public int getSaleCount() {
		return saleCount;
	}
	public void setSaleCount(int saleCount) {
		this.saleCount = saleCount;
	}
	
	
	
}

Property

package tmall.bean;

public class Property {

	private String name;
	private Category category;//因为是外键 所以需要
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Category getCategory() {
		return category;
	}
	public void setCategory(Category category) {
		this.category = category;
	}
	
}

 

PropertyValue

package tmall.bean;

public class PropertyValue {
	private String value;
	private Product product;
	private Property property;
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
	public Property getProperty() {
		return property;
	}
	public void setProperty(Property property) {
		this.property = property;
	}
}

 

ProductImage

产品图片

package tmall.bean;

public class ProductImage {
	
	private String type;
	private Product product;
	private int id;

	public int getId() {
		return id;
	}
	

	public void setId(int id) {
		this.id = id;
	}

	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
}

Order类

可以登录天猫,登录后查看我的订单,体验其中的差异,

注意有个status的属性,删除了不一定是真删除了,是被隐藏起来了

package tmall.bean;

import java.util.Date;

import java.util.List;
//import tmall.dao.OrderDAO;

public class Order {
	private String orderCode;
	private String address;
	private String post;
	private String receiver;
	private String mobile;
	private String userMessage;
	private Date createDate;
	private Date payDate;
	private Date deliveryDate;
	private Date confirmDate;
	private User user;
	private int id;
	private List<OrderItem> orderItems;
	private float total;
	private int totalNumber;
	private String status;
	
	
	public String getStatusDesc(){
		String desc ="未知";
		switch(status){
//			case OrderDAO.waitPay:
//				desc="待付款";
//				break;
//			case OrderDAO.waitDelivery:
//				desc="待发货";
//				break;
//			case OrderDAO.waitConfirm:
//				desc="待收货";
//				break;
//			case OrderDAO.waitReview:
//				desc="等评价";
//				break;
//			case OrderDAO.finish:
//				desc="完成";
//				break;
//			case OrderDAO.delete:
//				desc="刪除";
//				break;
//			default:
//				desc="未知";
		}
		return desc;
	}
	

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getPost() {
		return post;
	}
	public void setPost(String post) {
		this.post = post;
	}

	
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public String getUserMessage() {
		return userMessage;
	}
	public void setUserMessage(String userMessage) {
		this.userMessage = userMessage;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public Date getPayDate() {
		return payDate;
	}
	public void setPayDate(Date payDate) {
		this.payDate = payDate;
	}
	public Date getDeliveryDate() {
		return deliveryDate;
	}
	public void setDeliveryDate(Date deliveryDate) {
		this.deliveryDate = deliveryDate;
	}
	public Date getConfirmDate() {
		return confirmDate;
	}
	public void setConfirmDate(Date confirmDate) {
		this.confirmDate = confirmDate;
	}

	public String getReceiver() {
		return receiver;
	}

	public void setReceiver(String receiver) {
		this.receiver = receiver;
	}

	public String getOrderCode() {
		return orderCode;
	}

	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public List<OrderItem> getOrderItems() {
		return orderItems;
	}

	public void setOrderItems(List<OrderItem> orderItems) {
		this.orderItems = orderItems;
	}

	public float getTotal() {
		return total;
	}

	public void setTotal(float total) {
		this.total = total;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public int getTotalNumber() {
		return totalNumber;
	}

	public void setTotalNumber(int totalNumber) {
		this.totalNumber = totalNumber;
	}
	
}

OrderItem  订单类,和订单分开了,不能杂糅。相当于系统大数据

package tmall.bean;

public class OrderItem {
	private int number;
	private Product product;
	private Order order;
	private User user;
	private int id;
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
	public Order getOrder() {
		return order;
	}
	public void setOrder(Order order) {
		this.order = order;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}

	
}

基本的类就创建好了,可以细细品味其中区别,在有新的需求或者业务产生时,类、数据库有可能会随之变化,这其实是很耗费精力的,所以我们力求一次性把类都建好。至少在这个项目中是用这个方式。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

           

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值