自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 heap

heap默认追加元素push_heap()在范围[first, last)的最后一个位置存放着新添加的元素,调整该元素的位置,使[first, last)满足堆的要求。默认大顶堆。template <class RandomAccessIterator>inline void push_heap(RandomAccessIterator first, RandomAccessIterator last) {//注意新元素已经被放置在最尾部 __push_heap_aux(first

2021-03-26 12:06:12 152

原创 14.门面模式

1. “接口隔离”模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的方案。典型模式Facade 门面模式ProxyAdapterMediator2. “间接”的思想比如C++中的指针,比如软件的诞生本身就是间接的思想的应用,刚开始是没有软件的,人和计算机硬件直接交互,后来出现了软件,就是在硬件和人之间添加了一层间接层,后来发现软件和硬件之间又可以提取出一些稳定的东西作为间接层,就是现在

2021-01-29 14:11:46 111

原创 2021-01-28

1. “对象性能”模式面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。[继承本身并不会带来额外的开销,但是只要有虚函数存在,就会带来巨大开销]典型模式SingletonFlyweight2. 动机(Motivation)在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器,提供一种机

2021-01-28 17:10:36 122

原创 10.原型模式(Prototype)

本文讲述了对象创建模式中的原型模式,介绍了原型模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “对象创建”模式通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式Factory MethodAbstract FactoryPrototype 原型模式Builder2. 动机(Motivation)在软件系统中,经.

2021-01-25 20:56:59 135

原创 9.抽象工厂(Abstract Factory)

本文讲述了对象创建模式中的抽象工厂模式,介绍了抽象工厂模式动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “对象创建”模式通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式Factory MethodAbstract Factory 抽象工厂PrototypeBuilder2. 动机在软件系统中,经常面临着“一系列相.

2021-01-25 13:52:35 108

原创 8.工厂方法(Factory Method)

本文讲述了对象创建模式中的工厂方法模式,介绍了工厂模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “对象创建”模式通过“对象创建” 模式绕开new[细节依赖],来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作[不能只考虑变量声明符合面向接口,同样要避免等号之后具体的对象创建细节]。典型模式Factory Method 工厂方法Abstract FactoryProt.

2021-01-24 13:02:48 98

原创 7.桥模式(Bridge)

本文讲述了单一职责模式中的桥模式,介绍了桥模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式DecoratorBridge 桥模式2. 动机(Motivation)由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。如何应对这种“.

2021-01-23 21:26:26 732

原创 6.装饰模式(Decorator)

本文讲述了单一职责模式中的装饰模式,介绍了装饰模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式Decorator 装饰模式Bridge2. 动机(Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入了静态特质[.

2021-01-23 15:05:49 183 1

原创 5. 观察者模式(Observer/Event)

本文讲述了组件协作模式中的观察者模式,介绍了观察者模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “组件协作”模式:现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式Template MethodStrategyObserver / Event 观察者模式2. 动机(Motivation)在软件构建过程中,.

2021-01-22 19:21:56 279 1

原创 4.策略模式(Strategy)

本文讲述了组件写作模式中的策略模式,介绍了策略模式的动机、定义、结构、代码实例,最后进行了总结。再次感谢GeekBand的李建忠老师、GOF等前辈1. “组件协作”模式:现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式Template MethodStrategy 策略模式Observer / Event2. 动机(Motivation)在软件构建过程中,某些对象.

2021-01-21 21:29:23 138

原创 3. 模板方法(Template Method)

本文先介绍了三种不同的设计模式分类方法,比如按照目的、按照范围、按照封装变化角度不同;之后介绍了敏捷软件开发中普遍使用Refactoring to Patterns的方法对软件进行重构,介绍了两本重构书籍,与几种重构方法,核心就是晚绑定;再然后介绍了“组件协作”模式解决的问题,以及经典的三种设计模式,其中Template Method是本文重点;再然后对模板方法这一设计模式进行详细的介绍,包括:动机、代码实例、模式类图、模式定义,再结合代码实例,比较了结构化软件设计和面向对象软件设计,并对早绑定与晚绑定进.

2021-01-21 14:39:36 160

原创 数值算法 —— 内积(inner_product)

参考书籍:《STL源码剖析》参考源码: cygnus C++2.91.57 for WindowsI. 所在文件位置// code01// numeric#ifndef __SGI_STL_NUMERIC#define __SGI_STL_NUMERIC// ......#include <stl_numeric.h>// ......#endif /* __SGI_STL_NUMERIC */// code02// stl_nameric.h#ifndef.

2020-12-14 20:09:42 1635

原创 数值算法 —— 邻接元素操作(adjacent_difference)

参考书籍:《STL源码剖析》参考源码: cygnus C++2.91.57 for WindowsI. 所在文件位置// numeric#ifndef __SGI_STL_NUMERIC#define __SGI_STL_NUMERIC// ......#include <stl_numeric.h>// ......#endif /* __SGI_STL_NUMERIC */// stl_nameric.h#ifndef __SGI_STL_INTERNAL_.

2020-12-14 19:42:15 381 2

原创 数值算法 —— 累加(accumulate)

参考书籍:《STL源码剖析》参考源码: cygnus C++2.91.57 for WindowsI. 所在文件位置// numeric#ifndef __SGI_STL_NUMERIC#define __SGI_STL_NUMERIC// ......#include <stl_numeric.h>// ......#endif /* __SGI_STL_NUMERIC */// stl_nameric.h#ifndef __SGI_STL_INTERNAL_.

2020-12-14 16:55:08 923

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除