设计模式
文章平均质量分 52
希望我努力一点
这个作者很懒,什么都没留下…
展开
-
Head First 设计模式——chapter4 工厂模式C++实现
工厂模式:用来封装对象的创建,通过让子类决定该创建的对象是什么,来达到将对象创建过程封装的目的。#include "test.h"void Pizza::prepare(){ std::cout << "preparing " << name << "\n"; std::cout << "Tossing dough...\n"; std::cout << "Adding sauce...\n"; std::cout <原创 2022-04-23 16:00:02 · 112 阅读 · 0 评论 -
Head First 设计模式——chapter3 装饰者模式C++实现
设计原则:开闭原则: 对扩展开放,对修改关闭。使得设计具有弹性可以应对改变,可以接受新的功能来应对改变需求。不需要每个地方都遵循,而是在设计最有可能改变的地方应用开闭原则。eg: 观察者模式,通过加入新的观察者,可以扩展主题对象,而不需向主题中添加代码。装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰类继承自超类,继承是为了有正确的类型,而非继承超类的行为。#include<iostream>#include<ve原创 2022-04-14 21:26:41 · 726 阅读 · 0 评论 -
Head First 设计模式——chapter2 观察者模式C++实现
观察者模式: 出版者+订阅者主题对象(出版者)管理某些数据,当主题内的数据改变,就会通知观察者(订阅者)。观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。相比让多个对象控制同一份数据,可以得到更干净的OO设计。设计原则:为了交互对象之间的松耦合努力。改变一方都不会影响另一方。两者松耦合,但他们仍然可以交互,只要交互原则仍被遵守。松耦合能让我们建立有弹性的OO系统,将对象之间的互相依赖降到最低。可观察者不知道观察者的细节,只知道观察..原创 2022-04-14 19:50:27 · 428 阅读 · 0 评论 -
Head First 设计模式——chapter5 单件模式C++实现
单件模式:有些类只应该存在一个实例。如线程池,缓存,注册表等对象。单件模式能确保一个类只有一个实例,并提供一个全局访问点。全局变量? 必须在程序刚开始就创建对象,而单件模式可以在需要时才创建对象。实现:1.构造函数声明为私有。2.声明静态实例对象。3.提供实例的全局访问点,当需要实例时,向类查询,它会返回静态实例对象。查询时可以采用延迟实例化的方式创建单件,这对于资源敏感的对象十分重要。懒汉式:非线程安全。程序调...原创 2022-04-14 14:36:54 · 711 阅读 · 0 评论 -
Head First 设计模式——chapter1 策略模式C++实现
设计模式: 设计模式可以告诉我们如何组织类和对象以解决某种问题。构造OO系统的经验被整合成了不同的设计模式。建立可维护的OO系统,要点在于随时想到系统以后可能需要的变化及应对变化的原则。策略模式的原则:一、 封装变化找出应用中可能需要变化之处,将其独立出来,不要和不需要变化的代码混在一起将鸭子类和容易改变的飞行,呱呱叫类分开。二、针对接口编程,而不是针对实现将具体行为编写在飞行行为,呱呱叫行为类中,而非对每个鸭子类实现行为接口。使得这些行为与鸭子类无关,可以被其他对...原创 2022-04-12 17:08:54 · 447 阅读 · 0 评论