(全网最详细讲解)C#设计模式——工厂模式实验

一.实验目的

1.了解工厂模式创建对象的基本思路和方法,理解工厂类在创建对象过程中角色作用;

2.熟悉简单工厂模式的类图结构,并能利用该模式实现同一工厂对不同对象的创建;

3.熟悉工厂方法模式的类图结构,并能利用该模式实现不同工厂类对不同对象的创建。

实验内容

1.构建一个实现收费功能的运算类(CashUp),并构造继承该类的三个子类(正常收费类CashNormal、八折收费类CashDiscount、满减类CashReturn),分别实现收费的运算;

2.利用简单工厂模式,构建一个简单工厂类,实现对上述三个子类对象的创建;

3.利用工厂方法模式,构建能够实现对上述三个不同子类对象的分别创建的工厂,实现不同工厂类生产不同的运算类对象。

三.实验过程

简单工厂模式类图

四.调试和运行结果

进入主程序  输入单价、数量、优惠,并读取用户输入

CashFactory 是一个工厂类,负责根据传入的优惠类型 Discount创建相应的现金收费对象。

cashUp 是一个现金收费对象的引用,它根据优惠类型 Discount创建出不同的实例,可以是正常收费、打折收费或满减收费等。

使用了简单工厂模式来创建不同类型的现金收费对象

CashFactory 是一个工厂类,负责根据传入的优惠类型 Discount创建相应的现金收费对象。

CreateCash 是工厂类的静态方法,接收一个优惠类型作为参数,并根据这个参数来实例化不同的现金收费对象。

cashUp 是一个现金收费对象的引用,它根据优惠类型 Discount 创建出不同的实例,可以是正常收费、打折收费或满减收费等。

声明一个变量 totalprice 用于存储购买商品的总价格,并将其初始化为 0

调用 cashUp 对象的 DisCount 方法来计算折扣后的总价格。得到购买商品的总金额。

最终将折扣后的金额赋值给 totalprice,得到购买商品的总价格。

它继承自 CashUp 抽象类,并实现了抽象方法 DisCount

通过将原始金额 money 与折扣率相乘,计算出折扣后的金额,并将其返回。

声明一个变量 totalprice 用于存储购买商品的总价格,并将其初始化为 0

调用 cashUp 对象的 DisCount 方法来计算折扣后的总价格。

商品单价乘以数量,得到购买商品的总金额。

调用了 cashUp 对象的 DisCount 方法,根据具体的收费类型对传入的金额进行折扣计算,并返回折扣后的金额。

五.实验总结

1.简单工厂模式用于将对象的创建过程封装在一个工厂类中,可以根据条件来创建不同类型的对象。简单工厂模式创建不同的现金收费对象,根据传入的优惠类型来实例化相应的对象。

2.通过使用简单工厂模式,能够在不修改主程序逻辑的情况下,轻松地切换不同的现金收费策略,提高了代码的可维护性和灵活性。这种模式对于对象的创建和管理提供了一种结构化的方式。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值