1 / 55
文档名称:

设计模式教学课件(与“策略”有关文档共55张).pptx

格式:pptx   大小:241KB   页数:55页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

设计模式教学课件(与“策略”有关文档共55张).pptx

上传人:胜利的果实 2022/11/22 文件大小:241 KB

下载得到文件列表

设计模式教学课件(与“策略”有关文档共55张).pptx

相关文档

文档介绍

文档介绍:该【设计模式教学课件(与“策略”有关文档共55张) 】是由【胜利的果实】上传分享,文档一共【55】页,该文档可以免费在线阅读,需要了解更多关于【设计模式教学课件(与“策略”有关文档共55张) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。
做一个商场收银软件,营业员根据客户购买商品单价和数量,向客户收费。
第1页,共55页。
关键代码
double total = ; private void btnOk_Click(object sender, EventArgs e)    {     double totalPrices=() * (); 
 total = total + totalPrices;        (“单价:”++“ 数量:”++“ 合计:”+());         = ();         }
无法满足打折,满300送300等促销措施!!!
第2页,共55页。
报价管理
在一些CRM(客户关系管理)系统中,会有一个单独的报价管理模块,处理复杂的报价功能
普通客户:全价
老客户:根据年限,给予折扣
大客户:根据累计消费,给予折扣
客户购买量:对于新老客户都适用
报价人员职位高低:
如何实现????
第3页,共55页。

类的划分原则
面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。
第4页,共55页。
第5页,共55页。
//现金收取父类 
 abstract class CashSuper     {         //抽象方法:收取现金,参数为原价,返回为当前价         public abstract double acceptCash(double money);     }     
//正常收费,继承CashSuper     
class CashNormal : CashSuper     {         public override double acceptCash(double money)         {             return money;         }     }
第6页,共55页。
//打折收费,继承CashSuper    
class CashRebate : CashSuper     {         private double moneyRebate = 1;         //初始化时,必需要输入折扣率,如八折,         public CashRebate(string moneyRebate)         {            = (moneyRebate);         }         public override double acceptCash(double money)         {             return money * moneyRebate;         }     }
第7页,共55页。
//返利收费,继承CashSuper     class CashReturn : CashSuper     {         private double moneyCondition = ;         private double moneyReturn = ;         public CashReturn(string moneyCondition, string moneyReturn)         {          = (moneyCondition);          = (moneyReturn);         }         public override double acceptCash(double money)         {             double result = money;             if (money >= moneyCondition)
result = money-(money / moneyCondition) * moneyReturn;             return result;         }     }
第8页,共55页。
//现金收取工厂     
class CashFactory     {         //根据条件返回相应的对象         public static CashSuper createCashAccept(string type)         {             CashSuper cs = null;             switch (type)             {                 case "正常收费":                     cs = new CashNormal();                     break;                 case "满300返100":                     CashReturn cr1 = new CashReturn("300", "100");                     cs = cr1;                     break;                 case "打8折":                     CashRebate cr2 = new CashRebate("");                     cs = cr2;                     break;             }             return cs;         }     }
第9页,共55页。
//客户端窗体程序(主要部分)     CashSuper csuper;//声明一个父类对象     double total = ;     private void btnOk_Click(object sender, EventArgs e)     {
        csuper = (());  
      
double totalPrices=0;
        totalPrices = (() * 
());
        total = total + totalPrices;
        ("单价:" +  + " 数量:" +  + " "++ " 合计:" + ());
         = ();     }
第10页,共55页。