双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

哪位大神知道这是什么设计模式?还是只是一种设计技巧?

flying_music flying_music 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人对设计模式一知半解,今天看到项目代码里有这用写法,目的就是让下层的B类,回头访问上层A类的成员,请问有没有人知道这是什么模式?

#include <iostream>

using namespace std;

class BListener {
public:
virtual ~BListener() {}
virtual void listener() = 0;
};

class B {
public:
BListener *m_listener;

B(BListener *listener = NULL) {
m_listener = listener;
}
void foo() { //需要访问A中的成员变量
if(m_listener) {
m_listener->listener();
}
}
};

class A : public BListener {
public:
void onNotify() {
//访问A的成员变量
}
void listener() {
onNotify();
}
public:
B b;
};

int main() {
A a;

return 0;
}
...全文

相关推荐

设计模式面试专题.zip

设计模式面试专题.zip

易小侠

designpattern:设计模式

designpattern 设计模式 觉得看总结太单调,fork下来看看代码吧。 前情提要——简单工厂 简单工厂不是一个标准设计模式。 让客户端只知道接口、不知道具体实现,而设计工厂方法来生成具体实现的实例。把new Impl()放到工厂中,组件对外暴露的内容发生了改变,有质的变化。 1、时序步骤 客户端调用工厂静态方法创建接口 工厂根据传参、配置文件或持久化的值来选择并创建具体接口实现的实例并返回 客户端调用接口方法进行处理 2、多态来源种类 来源于客户端传入参数——客户端需要感知参数,一定程度上暴露了实现的种类 来源于配置文件——需要静态配置,J2EE的spring中常配置XML 来源于运行时的某个值,如缓存或DB 如果多态从配置文件中读入,如下: public static Api createApi() { // 从配置文件读入 Properties p = new Pro

dilikong

DesignPattern:设计模式

设计模式 设计模式

Luna Knight

DesignPattern设计模式

DesignPattern 设计模式,共10章。内容详细,案例设计齐全。对设计可复用的面向对象的软件很有帮助,有助你写出又质量,并且可重复使用的高品质软件

龙猫_1

DesignPattern:设计模式样本

设计模式 设计模式样本 Java中的Singleton 2路静态嵌套类和syncranaizd 静态嵌套类在Java中更受欢迎

逸格草草
评论 6
收藏 已收藏
分享
返回顶部
flying_music
模式及实现 5,529 成员 4,167 内容