每日总结

软件设计模式 桥接模式:

 

 

 

 #include <iostream>
#include <vector>
using namespace std;
class Component {
public:
    virtual void opration()=0;
    virtual void add(Component* c)=0;
    virtual void remove(Component* c)=0;
    virtual Component* getChild(int i)=0;
};
class Leaf :public Component{
public:
    vector<Component*> list;
     void opration();
     void add(Component* c);
     void remove(Component* c);
     Component* getChild(int i);
};
class Composite :public Component{
public:
    vector<Component*> list;
     void opration();
     void add(Component *c);
     void remove(Component *c);
     Component* getChild(int i);
};
void Composite::add(Component *c) {
    cout << "添加文件\n";
    list.push_back(c);
}
void Composite::remove(Component *c) {
    cout << "移除文件\n";
}
Component* Composite::getChild(int i) {
    return list[i];
}
void Composite::opration() {
    cout << "遍历文件夹\n";
    for (int i = 0; i < list.size(); i++) {
        cout << "进入文件夹或打开文件\n";
        list[i]->opration();
;    }
}
void Leaf::add(Component* c) {
    cout << "添加文件\n";
    list.push_back(c);
}
void Leaf::remove(Component* c) {
    cout << "移除文件\n";
}
void Leaf::opration() {
    cout << "文件打开\n";
}
Component* Leaf::getChild(int i) {
    return list[i];
}
int main() {
    Composite *cm = new Composite();
    Component *a = new Composite();
    Component *b = new Leaf();
    Component *c = new Leaf();
    //遍历
    cm->opration();
    cm->add(a);
    cm->add(b);
    cm->add(c);
    a->add(b);
    a->add(c);
    cm->opration();
    a->remove(b);
    b->remove(c);
    cm->remove(b);
    cm->remove(a);
    cout << "遍历文件夹\n";
    /*cm->opration();*/
    system("pause");
    return 0;
    
}



posted @   chenghaixinag  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2020-10-06 每日总结12
点击右上角即可分享
微信分享提示