Exemplo n.º 1
0
        public void AskBuying()
        {
            Console.WriteLine("您好,请问您需要什么商品");
            Console.WriteLine("我们有Acer,SamSung,Sauce,banana");
            string strType = Console.ReadLine();

            Console.WriteLine("请问您需要多少");
            int count = Convert.ToInt32(Console.ReadLine());

            //去仓库取货
            ProductFather[] pros = wh.GetProducts(strType, count);
            //计算价格
            double realMoney = GetMoney(pros);

            Console.WriteLine("请选择打折方式:1-----不打折   2-------打九折  3----------超过M元优惠n元");
            string input = Console.ReadLine();

            //通过简单工厂模式,根据用户输入获得一个打折对象
            DiscountFather discount   = GetDis(input);
            double         realMoney1 = discount.GetTotalMoney(realMoney);

            //打印小票
            Console.WriteLine("以下是您的购物信息");
            foreach (ProductFather item in pros)
            {
                Console.WriteLine("商品名称:" + item.Name + "      商品价格:" + item.Price + "RMB       商品编号:" + item.ID);
            }
            Console.WriteLine("您总共购买了{0}元的商品,打折后应该支付{1}", realMoney, realMoney1);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 和用户交互的过程
        /// </summary>
        public void AskBuying()
        {
            Console.WriteLine("欢迎,你需要什么?");
            Console.WriteLine("我们这里有Acer,SamSung,Napkin,Banana");
            String strType = Console.ReadLine();

            Console.WriteLine("你需要多少?");
            int count = Convert.ToInt32(Console.ReadLine());

            //去仓库取货
            ProductFather[] pros      = wh.OutputPros(strType, count);
            double          realMoney = GetMoney(pros);

            Console.WriteLine("你总共需付{0}元钱", realMoney);
            Console.WriteLine("请选择你需要的打折方式:1.不打折,2.打九折,3.打85折,4.买300减50,5.买500减100 ");
            string input = Console.ReadLine();

            //其实这就是简单工厂模式的实现,我们将打折方式抽象了一个父类,在实现GetDiscount()方法时就是
            //使用的工程模式,获得了用户的打折方式;
            DiscountFather disocuntWay = GetDiscount(input);
            double         totalMoney  = disocuntWay.GetToalMoney(realMoney);

            Console.WriteLine("打完折后总计:{0}", totalMoney);
            Console.WriteLine("你的购物清单:");
            foreach (var item in pros)
            {
                Console.WriteLine("种类:{0}   单价{1}    货物条形码{2}", item.Name, item.Price, item.ID);
            }
            Console.WriteLine("------------------------------------------------------------------------" + "\n" + "total:{0}", totalMoney);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 采用简单工厂来计算折扣率
        /// </summary>
        /// <param name="input">控制台输入的打折方式</param>
        /// <returns>返回应付现金</returns>
        public DiscountFather GetDis(string input)
        {
            DiscountFather dis = null;

            switch (input)
            {
            case "1":
                return(dis = new NoDiscount()); break;

            case "2":
                return(dis = new Discount2(0.9)); break;

            case "3":
                return(dis = new Discount3(500, 100)); break;
            }
            return(dis);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 根据用户的输入选择一个打折方式
        /// 这里使用的就是典型的--简单工厂模式
        /// </summary>
        /// <param name="input">打折方式</param>
        /// <returns>f返回一个打折父类类型,但是装的一定是一个子类类型的对象</returns>
        public DiscountFather GetDiscount(string input)
        {
            DiscountFather discountWay = null;//注意这个DiscountFather是一个抽象类,不能实例化

            switch (input)
            {
            case "1": discountWay = new DiscountNormal();
                break;

            case "2": discountWay = new DiscountRate(0.9);
                break;

            case "3": discountWay = new DiscountRate(0.85);
                break;

            case "4": discountWay = new DiscountMForN(300, 50);
                break;

            case "5": discountWay = new DiscountMForN(500, 100);
                break;
            }
            return(discountWay);
        }