Composite_Pattern - 8BitsCoding/RobotMentor GitHub Wiki

μ˜ˆμ‹œλ‘œ μ„€λͺ…

파일 μ‹œμŠ€ν…œμ„ κ΅¬μ„±ν•΄λ³΄μž.

int main() {
    Folder * 
    root = new Folder("root"),
    home = new Folder("home"),
    garam = new Folder("garam"),
    picture = new Folder("picture"),
    doc = new Folder("doc"),
    usr = new Folder("usr");

    File *
    track1 = new File("track1"),
    track2 = new File("track2"),
    pic1 = new File("pic1"),
    doc1 = new File("doc1"),
    java = new File("java");

    // ν΄λ”μ•ˆμ— 폴더, 파일 넣을 수 μžˆλ„λ‘ μƒμ„œν•˜κ³  μ‹Άλ‹€.

    root->addComponent(home);
        home->addComponent(garam);
        //μ΄λŸ°μ‹μœΌλ‘œ


}
class Component {
public:
    Component(string name) {
        this->name = name;
    }
    string getName() {
        return name;
    }
    void setName(string name) {
        this=>name = name;
    }

private:
    string name;
};
class Folder : public Component {
public:
    Folder(string name) : Component(name){}

    List<Component> children;

    bool addComponent(Component component) {
        return children.add(component);
    }

    bool removeComponent(Component component) {
        return children.remove(component);
    }

    List<Component> getChildren() {
        return children;
    }
};
class File : public Component {
public:
    File(string name) : Component(name) {}

    Object getData() {
        return data;
    }

    void setData(Object data) {
        this->data = data;
    }

private:
    Object data;
}

μ°Έκ³ μ‚¬μ΄νŠΈ

⚠️ **GitHub.com Fallback** ⚠️