C# 面向对象实战:从零模拟实现简易商城购物系统
利用 C# 的面向对象特性(OOP),构建一个完整的简易电商系统。本示例涵盖商品定义、卖家库存管理、用户账户体系、购物车逻辑以及基于控制台的交互主程序,演示了如何通过类与对象的协作处理实际业务需求。
核心领域模型设计
要实现商城功能,首先需要对现实世界的实体进行抽象建模。本系统定义了四个关键角色:代表具体商品的 Goods、维护库存总表的 GoodsSql、作为购买主体的 User 以及提供货源的 Seller。
第1步:定义商品信息实体
目的:标准化数据结构,确保每个商品具备名称、价格、型号数组、类别及关联卖家等信息。
- 字段定义:使用私有字段存储数据,通过公共属性暴露读写接口,实现数据封装。
- 构造函数:在实例化时初始化基本信息,并自动生成描述字符串(格式:名称|型号1|型号2|价格|)。
- 关系绑定:通过
Seller属性将商品与其所属卖家建立引用关联。
class Goods
{
private string goodName;
private float goodPrice;
private string[] goodModel = new string[2];
private string goodType;
private string goodDescribe;
private Seller seller;
// 构造函数...
public Goods(string goodName, float goodPrice, string[] goodModel, string goodType)
{
this.goodName = goodName;
this.goodPrice = goodPrice;
this.goodModel = goodModel;
this.goodType = goodType;
goodDescribe = goodName + goodModel[0] + "|" + goodModel[1] + "|" + goodPrice + "|";
}
// Property Getters/Setters (GoodName, GoodPrice, etc.)
}
第2步:构建商品总库与卖家管理
目的:区分全局库存池与卖家个人货架,支持商品上架流程。
- GoodsSql 类:充当全局单例或上下文容器,内部维护
Goods[]数组,用于集中检索所有已上架商品。 - Seller 类:持有卖家姓名、余额及个人商品池
sellerGoods。提供AddGood方法,实现商品从卖家个人库向全局总库的同步操作。
第3步:用户与购物车逻辑
目的:模拟用户购买行为,包括资金管理与事务性结算。
- User 类:记录用户名与
userBalance,持有唯一的ShoppingCart实例。 - ShoppingCart 类:核心交易单元。
- AddGoods:动态创建
ShoppingItems条目,累加总金额totalPrice。 - CheckoutCart:执行结算逻辑。遍历商品条目,更新对应卖家的收款金额,扣除用户余额,清空购物车状态。
- AddGoods:动态创建
业务服务层实现
为了让各模块解耦,引入 Service 类处理查询逻辑,并提供独立的入口控制类 SoftwareUsage。
第4步:商品检索服务
通过 Service.Search 方法,依据类型标签遍历 GoodsSql 中的全量库存,筛选匹配项并存入临时结果集,便于前端展示。
第5步:控制台交互主控
程序入口 Main 函数负责组装对象图:
- 初始化环境:创建若干
Seller实例,预设初始余额;创建若干典型Goods(如图书、手机、电脑)。 - 上架操作:调用不同卖家
AddGood方法,将商品加入系统。 - 主循环:监听用户指令(1-搜索,2-购买,3-结算,4-查看购物车)。
运行流程演示
以下是在控制台交互场景下的典型操作路径:
// 1. 用户“岳翔”登录,初始余额 10,000,000
User user = new User("岳翔", 10000000.00f);
// 2. 搜索“手机”类型商品
service.Search("手机", goodsSql);
// 控制台输出匹配的 iPhone 和 Nokia 列表
// 3. 购买第一件商品(iPhone 64GB),数量 1
user.BuyGoods(service.Goods[0], 1);
// 4. 查看购物车
user.Cart.selectCart();
// 5. 结算并清空
user.CheckoutCart();
// 此时 user.UserBalance 减少,Seller1.SellerBalance 增加
该架构清晰展示了 C# 中类之间的依赖关系:User 依赖 ShoppingCart,ShoppingCart 依赖 ShoppingItems,而 ShoppingItems 引用 Goods,Goods 引用 Seller。这种层层包装的设计是构建复杂企业级应用的基础。
以上就是 C# 面向对象编程之模拟实现商城购物系统的详细内容,更多关于 C# 面向对象开发的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









