设计模式
文章平均质量分 74
zsiming
Why do we fall?
展开
-
设计模式:观察者模式(C++实现)
观察者模式模式又称为发布-订阅模式。订阅消息的一方称为观察者,而发布消息的一般称为主题类。观察者在一开始的时候会向主题类注册自己感兴趣的事件,当主题类发布了一个特定事件的时候,观察者就会收到主题类的通知,从而完成状态变化。原创 2022-09-12 22:16:31 · 435 阅读 · 0 评论 -
设计模式:饿汉式和懒汉式单例模式(C++实现)以及日志系统的实现
在一个项目的日志系统里面,我们常常会发现日志模块的实现是使用单例模式。单例模式的特点和它的名字一样,就是一个类能且只能实例化出一个唯一的对象。那么这样做有什么好处呢?原创 2022-09-09 16:03:30 · 1066 阅读 · 2 评论 -
设计模式:装饰器模式(C++实现)
首先先上结论:装饰器模式的设计场景是为已有的类增加新的功能。有人可能会觉得有些奇怪:增加新的功能可以通过继承的方式进行实现。例如,我通过public继承把父类的东西全部继承过来,接口也全部继承过来,然后在子类的基础上增加新的接口不就行了?其实理论上确实是可以的,但是这种方式通过继承+增加功能(接口)的方式在某些情况下可能会存在冗余,而装饰器的设计模式可以减少这种冗余。例如,假设现在有两个个汽车的厂家:BWM、Benz。原创 2022-09-04 19:44:09 · 361 阅读 · 0 评论 -
设计模式:适配器模式(C++实现)
那么这时候就需要一个转换器(适配器)来作为中间的桥梁,来将HDMI的信号转换为老的信号,从而被显示器接收工作。比如我们电脑连接投影仪(或者显示屏)的时候,老一点的电脑接口经常是VGA的,而新一点的可以是HDMI的或者TypeC的。这里的 Computer01 是第一代的电脑,比较老,只能输出VGA的信号,而投影仪只能接受一个VGA的老对象,这样工作是没问题的。这个老的一般指的是“接口传入的对象是老的”。VGAToHDMIAdaptor虽然是一个“旧对象”,但是它的构造函数可以接受一个新的对象。原创 2022-09-04 16:12:08 · 429 阅读 · 0 评论