【经典示例分享】— 商城购物车设计(VS+Access)附源码
程序员文章站
2022-04-25 11:01:47
...
弹指一挥间,从事开发工作两年多了,工作记录文件夹不知不觉好几G了。今天分享下之前项目中用到的一个购物车示例,虽然用的技术比较老(拖放控件DataGview),我觉得里面包含了很多可以细细咀嚼的 面向对象思想 ,尤其是商品和购物车各个对象的从属关系。购
弹指一挥间,从事开发工作两年多了,工作记录文件夹不知不觉好几G了。今天分享下之前项目中用到的一个购物车示例,虽然用的技术比较老(拖放控件DataGview),我觉得里面包含了很多可以细细咀嚼的面向对象思想,尤其是商品和购物车各个对象的从属关系。购物车老生常谈的东西,希望能起到抛砖引玉的效果。下面就简单介绍下吧!(via:女孩礼物网)
此款短小精悍的购物车主要有三大功能:1.折扣方案调整 2.商品列表 3.购物车
-
折扣方案调整
-
商品列表
-
购物车
-
购物车核心思想代码如下
Product.cs
1 using System; 2 using System.Collections.Generic; 3 4 [Serializable] 5 public class Product { 6 7 int id; 8 9 public int Id { 10 get { return id; } 11 set { id = value; } 12 } 13 14 string name; 15 16 public string Name { 17 get { return name; } 18 set { name = value; } 19 } 20 21 decimal price; 22 23 public decimal Price { 24 get { return price; } 25 set { price = value; } 26 } 27 28 string unit; 29 30 public string Unit { 31 get { return unit; } 32 set { unit = value; } 33 } 34 35 public Product(int id, string name, decimal price, string unit) { 36 this.id = id; 37 this.name = name; 38 this.price = price; 39 this.unit = unit; 40 } 41 }
ShopCartItem.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 [Serializable] 7 public class ShopCartItem { 8 9 private Product product; 10 private int count; 11 12 public Product Product { 13 get { return product; } 14 set { product = value; } 15 } 16 public int Count { 17 get { return count; } 18 set { count = value; } 19 } 20 21 ///
22 /// 单项总折后价。 23 /// 24 public decimal Price { 25 get { 26 decimal price = (decimal)0; 27 List discountsUsing = (List )HttpContext.Current.Application["DiscountsUsing"]; 28 price = this.TotalPrice; 29 foreach (IDiscountable discount in discountsUsing) { 30 price = price * (decimal)discount.GetDiscount(this.product.Price, this.count); 31 } 32 return price; 33 } 34 } 35 36 /// 37 /// 单项总原价 38 /// 39 public decimal TotalPrice { 40 get{ 41 return this.product.Price * this.count; 42 } 43 } 44 45 public ShopCartItem(Product product, int count) { 46 this.product = product; 47 this.count = count; 48 } 49 } ShopCartSet.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 [Serializable] 7 public class ShopCartSet : IEnumerable
{ 8 9 private Dictionaryint