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