C++ 设计模式的基本原则

设计模式基本原则,最终目的,高内聚,低耦合,开放封闭原则类的改动是通过增加代码进行的,不是修改源代码。 2021-09-13 10:30:42 C++代码设计模式 一顿操作,我把 Table 组件性能提升了十倍 Table 表格组件在 Web 开发中的应用随处可见,不过当表格数据量大后,伴随而来的是性能问题:渲染的 DOM 太多,渲染和交互都会有一定程度的卡顿。 2021-09-13 10:25:35 开发技能代码 文科生自学Python/VBA-多条件判断评级 之前的文章分享了如何根据成绩划分等级,只涉及到了一个条件因素,今天在这里给小伙伴们分享一下多条件判断如何处理,下面通过一个有趣的案例进行阐述和讲解。 2021-09-13 10:24:45 Python数据评级 SQL Server性能优化工具Profiler SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果。 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播一系列特定的步骤。 2021-09-13 10:23:52 工具ProfilerSQL Python如何在字符串中添加变量数据(程序进一步完善) 前一天一直在研究用python控制微信的功能,用了第三方库,效果很不错,今天无意中想到,我每天在跑的程序会自动统计每个店的产品销售数据。a卖了几个,卖了多少钱,b卖了几个卖了多少钱。但是实际使用上还有很大的路要走。

设计模式基本原则,最终目的,高内聚,低耦合,开放封闭原则类的改动是通过增加代码进行的,不是修改源代码。

设计模式基本原则

最终目的,高内聚,低耦合

开放封闭原则类的改动是通过增加代码进行的,不是修改源代码

[[423507]]

银行类案例代码

  1. #include<iostream>
  2. usingnamespacestd;
  3. classBankWorker
  4. {
  5. public:
  6. voidsave()
  7. {
  8. cout<<"存款"<<endl;
  9. }
  10. voidmoveM()
  11. {
  12. cout<<"取款"<<endl;
  13. }
  14. voidjiaofei()
  15. {
  16. cout<<"缴费"<<endl;
  17. }
  18. };
  19. classAbBankWorker
  20. {
  21. public:
  22. virtualvoiddothing()=0;
  23. };
  24. classSaveBanker:publicAbBankWorker
  25. {
  26. public:
  27. virtualvoiddothing()
  28. {
  29. cout<<"存款"<<endl;
  30. }
  31. };
  32. classMoveBanker:publicAbBankWorker
  33. {
  34. public:
  35. virtualvoiddothing()
  36. {
  37. cout<<"取款"<<endl;
  38. }
  39. };
  40. classSaveBanker:publicAbBankWorker
  41. {
  42. public:
  43. virtualvoiddothing()
  44. {
  45. cout<<"缴费款"<<endl;
  46. }
  47. };
  48. voidmain11()
  49. {
  50. BankWorker*bw=newBankWorker;
  51. bw->jiaofei();
  52. bw->moveM();
  53. bw->save();
  54. cout<<"hello..."<<endl;
  55. system("pause");
  56. return;
  57. }
  58. voidmain22()
  59. {
  60. AbBankWorker*bw=NULL;
  61. bw=newMoveBanker;
  62. bw->dothing();
  63. deletebw;
  64. return;
  65. }
  66. voidmain()
  67. {
  68. main22();
  69. system("pause");
  70. return;
  71. }

单一职责原则类的职责要单一,对外只提供一种功能,而引起内变化的原因都应该只有一个

依赖倒置原则依赖于抽象接口,不要依赖具体的实现类,也就是针对接口编程

  1. #include<iostream>
  2. usingnamespacestd;
  3. classHardDisk
  4. {public:
  5. virtualvoidwork();
  6. };
  7. classMemory
  8. {
  9. public:
  10. virtualvoidwork();
  11. };
  12. classCpu
  13. {
  14. public:
  15. virtualvoidwork();
  16. };
  17. classComPuter
  18. {
  19. public:
  20. ComPuter(HardDisk*m_handdisk,Memory*m_memory,Cpu*m_cpu)
  21. {
  22. m_handdisk=handdisk;
  23. m_memory=memory;
  24. m_cpu=cpu;
  25. }
  26. public:
  27. voidwork()
  28. {
  29. m_handdisk->work();
  30. m_memory->work();
  31. m_cpu->work();
  32. }
  33. private:
  34. HardDisk*m_handdisk;
  35. Memory*m_memory;
  36. Cpu*m_cpu;
  37. };
  38. classInterCpu:publicCpu
  39. {
  40. public:
  41. voidwork()
  42. {
  43. cout<<"我是因特尔厂家"<<endl;
  44. }
  45. };
  46. classXSDisk:publicHardDisk
  47. {
  48. public:
  49. voidwork()
  50. {
  51. cout<<"我是西数硬盘厂家"<<endl;
  52. }
  53. };
  54. classJSDMem:publicMemory
  55. {
  56. public:
  57. voidwork()
  58. {
  59. cout<<"我是JSDMem厂家"<<endl;
  60. }
  61. };
  62. voidmain()
  63. {
  64. HardDisk*handdisk=NULL;
  65. Memory*memory=NULL;
  66. Cpu*cpu=NULL;
  67. handdisk=newXSDisk;
  68. memory=newJSDMem;
  69. cpu=newInterCpu;
  70. ComPuter*mycomputer=newComPuter(harddisk,memory,cpu);
  71. mycomputer->work();
  72. deletemycomputer;
  73. deletecpu;
  74. deletememory;
  75. deleteharddisk;
  76. cout<<"hello"<<endl;
  77. system("pause");
  78. return;
  79. }

接口隔离原则不应该强迫客户的程序依赖他们不需要的接口方法,一个接口应该是提供一种对外功能,不应该把所有的操作都封装到一个接口中去

里氏替换原则任何抽象类出现的地方都可以用它的实现类进行替换,实际就是虚拟机智语言级别,实现面向对象功能

优先使用组合而不是继承原则如果使用继承,会导致复位的任何变化,都可能影响此类的行为,如果使用对象组合,就降低了这种依赖关系

迪米特法则一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如,在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现,这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实现发生改变的时候,不会影响其他模块的使用黑盒原理。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月5日 18:11
下一篇 2023年5月5日 18:11

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信