功能描述:
添加商品 addProduct<ID,name,desc>,商品有一些基本的信息,比如价格,名称,描述等, 除此之外,商品还可以有图片.图片可以有多张,比如商品有缩略图,清晰图,颜色图,并且在展示商品时,希望在不同的位置显示不同的图片.并且有可能某种类型图片只能为控制为一张,当新上传一张该类型的图片,则原来的图片被替换.
初步的设计:如图
Public Class ProductTransaction { private ImgDao imgDao; private ProductDao productDao; public void AddProduct(Product product) { daoManager.BeginTransaction(); try { productDao.AddProduct(product); imgDao.AddImg(Product.ImgList); daoManager.CommitTransaction(); } catch { daoManager.RollBackTransaction(); } }
public void UpdateProduct(Product product) { daoManager.BeginTransaction(); try { productDao.UpdateProduct(product); imgDao.Del(Product.ID);//先删 imgDao.AddImg(Product.ImgList);//在添加 daoManager.CommitTransaction(); } catch { daoManager.RollBackTransaction(); } }
public Set GetImgList(string ProductID) { //根据商品ID获取商品图片 } public Set GetImgList(string ProductID,string ImgType) { //根据商品ID获取商品某类型(imgType)的图片 } }
|
因为以后想可以对商品图片单独进行一个维护. 我想抽出一个图片事务"ImgTransaction",那么"ProductTransaction"可以用"ImgTransaction"完成原来的添加图片功能,那么这里就: public void AddProduct(Product product) { daoManager.BeginTransaction(); try { productDao.AddProduct(product); daoManager.CommitTransaction(); } catch { daoManager.RollBackTransaction(); }
imgTransaction.AddImg(Product.ImgList);//添加图片 }
|
这样做本来一个事务的变成了两个事务,这样有损性能. 后来觉得没必要抽出一个图片事务"ImgTransaction", 但用"ProductTransaction"是否合理?
我对图片类型的处理感觉不妥, 要做到不同位置展示不同图片,只能通过GetImgList(string ProductID,string ImgType)来取, ProductID是商品ID,ImgType是
图片类型.这里应该怎样设计?请高手指教.
[该贴被willem于2008-03-24 11:43修改过]
[该贴被admin于2008-03-29 08:44修改过]