工厂模式总结1.doc_第1页
工厂模式总结1.doc_第2页
工厂模式总结1.doc_第3页
工厂模式总结1.doc_第4页
工厂模式总结1.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工厂模式总结1、 目的:把逻辑算法与界面实现分开,使程序更灵活、更易维护、更易扩展,从而减少代码量,出错率。2、 类图(实线:继承;虚线:依赖)3、 类使用继承关系,在父类里抽象出一个抽象方法(找出各个方法功能共同的地方)。这个方法很重要。1. namespace 商场收银工厂模式2. 3. / 4. / 抽象类-现金支付5. / 6. abstract class CashSuper7. 8. / 9. / 抽象方法-现金收取类10. / 11. / 现金12. / 应收的现金13. public abstract double acceptCash(double money);14. 15. 4、 子类实现时,继承的抽象方法要通过重写实现,不能修改抽象方法的参数。1. namespace 商场收银工厂模式2. 3. / 4. / 正常支付,继承类CashSuper5. / 6. class CashNormal:CashSuper7. 8. public override double acceptCash(double money)9. 10. return money;11. 12. 13. 14.15. namespace 商场收银工厂模式16. 17. / 18. / 打折类19. / 20. class CashRebate:CashSuper21. 22. private double moneyRebeat = 0d;23. 24. / 25. / 打折类构造函数26. / 27. / 打折数28. public CashRebate(string moneyRebeat)29. 30. this.moneyRebeat = double.Parse(moneyRebeat);31. 32.33. public override double acceptCash(double money)34. 35. return moneyRebeat * money;36. 37. 38. 39. namespace 商场收银工厂模式40. 41. / 42. / 满就送类,继承CashSuper43. / 44. class CashReturn:CashSuper45. 46. / 47. / 满就送-满足的条件48. / 49. private double moneyCondition = 0d;50. / 51. / 满就送-送的钱52. / 53. private double moneyReturn = 0d;54. / 55. / 满就送类构造函数56. / 57. / 满就送-满足的条件58. / 满就送-送的钱59. public CashReturn(string moneyCondition, string moneyReturn)60. 61. this.moneyCondition = double.Parse(moneyCondition);62. this.moneyReturn = double.Parse(moneyReturn);63. 64.65. public override double acceptCash(double money)66. 67. if (money = moneyCondition)68. 69. return money - moneyReturn;70. 71. return money;72. 73. 74. 5、 工厂模式在工厂类里使用的主要语句:switch-case。函数为静态,方便界面调用。1. class CashFactor2. 3. public static CashSuper createAcceptCash(string type)4. 5. CashSuper cs = null;6.7. switch (type)8. 9. case 正常收费:10. 11. cs = new CashNormal();12. break;13. 14. case 打8折:15. 16. cs = new CashRebate(0.8);17. break;18. 19. case 满300返100:20. 21. cs = new CashReturn(300,100);22. break;23. 24. 25.26. return cs;27. 28. 6、 主界面的调用,就调用工厂类。1. private void btSure_Click(object sender, EventArgs e)2. 3. CashSuper csuper = CashFactor.createAcceptCash(cmb.SelectedItem.ToString();4.5. double price=Convert.ToDouble(this.txtPrice.Text.Trim();6. double num=Convert.ToDouble(this.txtNum.Text.Trim();7. double money = csuper.acceptCash(price * num);8. total += money;9. string str = string.Fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论