![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 51
WideHunt
这个作者很懒,什么都没留下…
展开
-
包装模式
包装模式(装饰者模式)作用:包装模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。角色:Component:定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent:定义一个对象,可以给这个对象添加一些职责Decorator:维持一个指向Component对象的指针,并定义一个与Compon...转载 2020-03-02 20:34:21 · 356 阅读 · 0 评论 -
代理模式
代理模式作用:为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。角色:subject:抽象角色。声明真实对象和代理对象的共同接口。proxy:代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。realsubject:真...转载 2020-03-02 19:59:25 · 184 阅读 · 0 评论 -
外观模式
外观模式作用:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。属于结构型模式。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。提高子系统的独立性和可移植性.简化了类之间的依赖关系使用场景:当你要为一个复杂子系统提供一个简单接口时客户程序与抽象类的实现部分之间存在着很大的依赖性当你需要构建一个层次结构的子系统时代码示例#inc...转载 2020-03-02 19:43:52 · 146 阅读 · 0 评论 -
原型模式
本文章转载:https://blog.csdn.net/u014337397/article/details/80387482原型模式作用:用原型实例来指定出创建对象的总类,并且通过拷贝这些原型来创建新的对象。使用场景:当一个系统应该独立于它的产品创建、构成和表示的时候当要实例化的类是在运行时刻指定的时候,如通过动态加载为了避免创建一个与产品类层次平行的工厂类层次时当一个类的实例只...转载 2020-03-02 19:31:54 · 133 阅读 · 0 评论 -
适配器模式
适配器模式定义:将某个类的接口转换为接口客户所需的类型。换句话说,适配器模式解决的问题是,使得原本由于接口不兼容而不能一起工作、不能统一管理的那些类可以在一起工作、可以进行统一管理。做法是将类自己的接口包裹在一个已存在的类中。举例:这里有厨师接口 ICooker、程序员接口 IProgrammer,分别用于定义他们各自工种的具体工作。然后又定义了全聚德的厨师 QjdCooker、京东的程序员J...原创 2020-03-02 19:25:10 · 206 阅读 · 0 评论 -
设计模式
创建型模式:(new的解耦)工厂模式单例模式建造者模式原型模式结构型模式:(对象之间的解耦)适配器模式外观模式代理模式包装模式桥接模式组合模式行为型模式:(将动作封装成对象,从类中解耦)模板方法模式策略模式观察者模式责任链模式中介者模式状态模式...原创 2020-03-02 09:51:57 · 97 阅读 · 0 评论 -
建造者模式
建造者模式建造者模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构造细节的情况下,可以更精细的控制对象的构造流程作用:为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。使用场景:需要生成的对象具有复杂的内部结构要生成的对象内部属性本身相互依赖优点:建造者独立,易扩展便于控制细节风险缺点:产品必须有共同点,范围有限制如内部变化复杂,会有...原创 2020-03-02 09:44:22 · 146 阅读 · 0 评论 -
单例模式
单例模式作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象应用场景:1.资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置。2.控制资源的情况下,方便资源之间的互相通信。如线程池等。3.设备管理器,系统中可能有多个设备,但是只有一个设备管理器,用于管理设备驱动;基础要点:全局只有一个实例:static 特性,...原创 2020-03-02 09:29:18 · 139 阅读 · 0 评论 -
工厂模式
工厂模式工厂模式:工厂设计模式,顾名思义,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所以说...原创 2020-03-02 09:14:16 · 335 阅读 · 0 评论 -
C/C++面试总结
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?回答:virtual修饰符会被隐形继承的。private 也被集成,只是派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里...原创 2020-02-20 20:17:34 · 1306 阅读 · 0 评论 -
类型推导
类型推导auto 类型推导运算符(根据赋值的值的类型来决定变量的类型)类型推导的规则为什么要掌握类型推导规则:推导原则帮助我们使用更好类型推导的作用:使代码更加灵活,通用性好使用场景:模板autodecltypedecltype(auto)函数模板的推导规则万能引用(限定函数模板)在函数模板中右值引用作为万能引用(未定义引用),即可以推导任意类型,既可以接...原创 2020-02-13 19:19:23 · 500 阅读 · 0 评论