编程小生的专栏

学习笔记

C++:STL标准入门汇总

一、STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来 的。现在虽说它主要出现在C++中,但在...

2013-04-08 15:03:13

阅读数:528

评论数:0

c++设计模式:策略模式(Strategy Pattern)

定义: 策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 场景: 鸭子种类繁多,有野鸭子、橡皮鸭、诱饵鸭,他们有的会飞,有的不会飞,有的会吱吱叫,有的会呱呱叫,有的还不会叫。其中的飞行行为和呱呱叫行为就可以当做算法族封装起来,这...

2013-04-06 19:13:47

阅读数:500

评论数:0

c++设计模式:观察者模式(Observer Pattern)

定义: 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 场景: 我们有一个气象站,我们通过WeatherData获取气象站的最新数据,并更新布告板上的数据。我们定义了两个布告板,一个是温度计,显示最新的温度,另一个布告...

2013-04-06 19:13:07

阅读数:506

评论数:0

c++设计模式:装饰者模式(Decorator Pattern)

定义: 装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 场景: 我们购买咖啡的时候,可以要求在其中加入各种调料,例如:蒸奶、豆浆、摩卡或覆盖奶泡,而咖啡店也会根据所加入的调料收取不同的费用,所以当我们设计订单系统的时候就需要考虑到这些调料...

2013-04-06 19:12:32

阅读数:444

评论数:0

c++设计模式:简单工厂模式(Simple Factory Pattern)

定义: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式...

2013-04-06 19:11:45

阅读数:489

评论数:0

c++设计模式:工厂模式(Factory Pattern)

定义: 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。 场景: 接简单工厂模式。现在我们纽约的披萨工厂已经转入正轨,我们打算再芝加哥再开一家披萨商店,但是两个地区的人们对于披萨要求的口味各不相同,所以我们需要依据各地的顾客...

2013-04-06 19:10:59

阅读数:385

评论数:0

c++设计模式:抽象工厂模式(Abstract Factory Pattern)

定义: 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 场景: 我们的披萨商店正在加速的扩建,已经接了好多城市的加盟邀请。可是各地口味不同,如果每个地市都定义不同的披萨类型,那么后期的维护将是十分头痛的,根据分析,我们披萨的种类是固定的,变动的其...

2013-04-06 19:10:13

阅读数:388

评论数:0

c++设计模式:适配器模式(Adapter Pattern)

定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 场景:我们有一只鸭子和一只火鸡,鸭子会嘎嘎叫,而火鸡会咯咯叫,鸭子飞的要远一点,而火鸡只能飞行一小段距离。火鸡和鸭子都会叫,但是他们的叫声不同,接口也不同,飞行的接口相同但是飞行的行为不同。...

2013-04-06 19:09:19

阅读数:554

评论数:0

c++设计模式:模板方法模式(Template Method Pattern)

定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 钩子的定义:钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。究竟需不需要挂钩,...

2013-04-06 19:07:56

阅读数:513

评论数:0

c++设计模式:迭代器模式(Iterator Pattern)

定义:迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 场景:我们有两个聚合A和B,有一个聚合管理的类,包含聚合A和B,而这个管理类的功能就是依次遍历它所包含的聚合中的元素并打印到控制台上。每个聚合中的元素存放的方式是不同的,有的用的是数组,有的可能是vect...

2013-04-06 19:07:05

阅读数:1165

评论数:0

c++设计模式:命令模式(Command Pattern)

定义: 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。 场景: 我们要设计一个遥控器,可以通过按动上边的控制按钮控制卧室和厨房的灯,还能控制卧室中的音响的开关。...

2013-04-06 19:05:24

阅读数:430

评论数:0

c++设计模式:单件模式(Singleton Pattern)

定义:单件模式确保一个类只有一个实例,并提供一个全局访问点 实现一: #include using namespace std; class CSingleton { public: static CSingleton* getInstance(); stati...

2013-04-06 17:45:18

阅读数:452

评论数:0

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