C++11 设计模式0. 设计模式的基本概念,设计模式的准则,如何学习设计模式,24种设计模式的分为3大类

一 设计模式的基本概念:

模式:指事物的标准样式 或者 理解成 针对特定问题的可重用解决方案。

设计模式,是在特定问题发生时的可重用解决方案。

设计模式一般用于大型项目中。

大型项目中,设计模式保证所设计的模块之间代码的灵活性和可复用性

但是设计模式 : 都需要以增加代码的复杂性为代价。

二 设计模式的准则

2.1 抽象思维:将整个代码中不变的部分抽取出来,切断两个模块之前的耦合。

a. 能从事物中抽取出或者说提炼出一些本质的,共性的内容,把这些共性的内容组合到一起(封装)。下面两种解决问题复杂性的方法可以借鉴:

      (1)分解法:把一个复杂的事物分解成若干个比较简单的事物。这样人们更容易理解。
      (2)抽象法:从每个简单的十五中,抽象出本质的内容封装起来:

b)抽象思维的目的:
    //设计原则:减少代码的重复性,方便代码的扩展性(日后增加新动物品种)
    //做抽象的原则:把比较稳定的,不怎么变化的内容作为一个模块,单独定义出来。

c)抽象思维的检验:
    //如何检验某种抽象是否做的不错呢?
     //c.1)项目需求如果发生更改,不更改现有的代码,通过增加新代码应对需求变更。
        //继承特性,一般用于表达两种意思:(1)抽象机制:抽取出本质的、共性的内容放到基类中;(2)可重用机制:基类中的一些内容,直接拿过来使用。
    //c.2)类中内容太多时,就要对类进行拆分,不要把毫不相关的内容写到一个类中。
      //面向对象程序设计原则之一:单一职责原则——一个类只干好一件事,承担好一种责任,不然就会牵扯太多。

2.2灵活性:

1.修改现有的部分,不会影响到其他部分的内容

2.新增新内容时,尽量少修改,或者不需要改动系统现有的内容

2.3可复用性

可复用:可以重复使用,可以到处用(可以被很多地方调用);

三 学习设计模式的步骤和方法:


    //a)掌握设计模式的基本概念和该设计模式要解决的具体问题。
    //b)动手实际编写相关的测试代码并进一步体验该模式的工作过程。一定不要略过这步。
    //c)编码过程中不断思考和总结设计经验,对于设计不合理的部分及时调整和更改。
    //d)在实际的项目中,细致大胆的采用设计模式进行实战,尤其注意多个设计模式解决问题时模式之间的关联和配合,不要怕出错。

四 设计模式的分类

相关推荐

  1. 23设计模式概念

    2024-04-11 14:04:02       31 阅读
  2. C++中23设计模式

    2024-04-11 14:04:02       35 阅读
  3. 设计模式基础概念:探索设计模式魅力

    2024-04-11 14:04:02       51 阅读
  4. C++|设计模式(〇)|设计模式原则

    2024-04-11 14:04:02       36 阅读
  5. 23设计模式概述

    2024-04-11 14:04:02       56 阅读
  6. 23设计模式概述

    2024-04-11 14:04:02       52 阅读
  7. 设计模式——23

    2024-04-11 14:04:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 14:04:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 14:04:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 14:04:02       87 阅读
  4. Python语言-面向对象

    2024-04-11 14:04:02       96 阅读

热门阅读

  1. 记一次golang交叉编译的问题

    2024-04-11 14:04:02       36 阅读
  2. speech to text 库FastASR交叉编译arm target的配置

    2024-04-11 14:04:02       34 阅读
  3. MXNet详细介绍,MXNet是什么

    2024-04-11 14:04:02       34 阅读
  4. UVA839 Not so Mobile 天平 解题报告

    2024-04-11 14:04:02       28 阅读
  5. 服务器被入侵后该做些什么

    2024-04-11 14:04:02       36 阅读
  6. 动手学习深度学习(李沐)

    2024-04-11 14:04:02       28 阅读
  7. jQuery

    jQuery

    2024-04-11 14:04:02      30 阅读
  8. MySql怎样优化慢查询

    2024-04-11 14:04:02       33 阅读
  9. 深入理解MySQL中的utf8、utf8mb4和排序规则

    2024-04-11 14:04:02       31 阅读
  10. mysql 多个字段组合查询,删除重复值

    2024-04-11 14:04:02       30 阅读
  11. python矩阵相乘

    2024-04-11 14:04:02       35 阅读
  12. TCP重传机制详解——05RACK

    2024-04-11 14:04:02       30 阅读