Build生成者模型

来源:互联网 发布:人工智能成功案例 编辑:程序博客网 时间:2024/06/05 17:28
#include <iostream>using namespace std;//不知道为什么其实很好解释的东西在网上搞的人晕头转向的,以下是我的理解。//一个基类衍生出许多具体实现的子类,这些子类都实现了虚基类的公共方法,//然后我们再构造一个Direver对象,让基类做为他的成员变量,在调用的时候//可以选择任意的子类对象传入然后可以调用该子类的方法,是不是很简单呢?//“生成器模式的意图在于将一个复杂的构建与其表示相分离“这句话说实话我纠结//了半天,非要把子类的具体调用用一个类包装起来说的如此高调,我也是醉了。//再说的通俗一点,我炒一个菜,用鸡蛋也能炒,用肉也能炒,用黄瓜也可以炒,饭//桌相当于一个包装类,你端什么菜我才能吃什么菜,而不管你有多少菜。class Base{public:    virtual void PrintfName() = 0;    virtual void PrintfSchool() = 0;};class Student1 : public Base{public:    void PrintfName()    {        cout << "Student1Name"<< endl;    }    void PrintfSchool()    {        cout << "Student1School"<<endl;    }};class Student2 : public Base{public:    void PrintfName()    {        cout << "Student2Name"<< endl;    }    void PrintfSchool()    {        cout << "Student2School"<< endl;    }};class Direver{public:    Direver(Base *base)    {        pbase = base;    }    void Construct()    {        pbase->PrintfName();        pbase->PrintfSchool();    }private:    Base *pbase;};int main(){    Direver d(new Student2());//此处指定传入的子类对象。    d.Construct();//哈哈,这里就调用你想调用的子类中的对象及方法。    return 0;}
1 0
原创粉丝点击