1. 模式设计模式
在必定环境中解决某一问题的方案,包括三个基本元素:问题、解决方案和环境。函数
2. 设计模式学习
(1)设计模式是一套反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性。毫无疑问,设计模式于系统是多赢的。spa
(2)设计模式使代码编制真正工程化。设计模式是软件工程的基石脉络,如同桥梁的结构同样。设计模式的基础是多态。设计
1)实现多态的三个条件:继承、父类指针(或引用)指向子类对象,虚函数重写;代理
2)多态实现原理:VPTR指针和虚函数表。 C++编译器为每个含有虚函数的子类或父类提早分配一个VPTR指针,经过VPTR指针找到虚函数表,根据虚函数表找后来人写的代码。指针
3.学习设计模式的意义对象
提升职业素养,关注学员在行业内的长期发展。blog
4. 学习设计模式的方法继承
(1)对于初学者:积累案例,大于背类图。
(2)初级开发人员:多思考、多梳理,概括总结;尊重事务的认知规律,注意事务临界点的突破,不可浮躁。
(3)中级开发人员:合适的开发环境,寻找合适的设计模式,解决问题;多应用;对经典组合设计模式的大量、自由的应用,要不断的追求。
5. 设计模式的分类
分为三大类建立型模式、构建型模式和行为模式。
(1)建立型模式:一般和对象的建立有关,涉及到对象实例化的方式。(包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式5种建立型模式)
(2)构建型模式:描述的是如何组合类和对象以得到更大的结构。(包括代理模式、装饰者模式、适配器模式、桥接模式、组合模式、外观模式、享元模式7种构建型模式)
(3)行为模式:对类或者对象怎样交互和怎样分配职责进行描述。(包括模板模式、命令模式、责任链模式、策略模式、中介者模式、观察者模式、备忘录模式、访问者模式、状态模式、解释器模式和迭代器模式共11种模式)
6. 设计模式基本原则
(1)最终目标:高内聚,低耦合。
(2)基本原则
下面将举例介绍开放封闭原则、依赖倒置原则和迪米特法则三种(注:上图红色五角星标注原则)
1)开放封闭原则
案列图:
2)依赖倒置原则
案列图:
3)迪米特法则
案列图: