2008年4月4日 星期五

Builder

Builder Design Pattern
用在Java的Thrad其Runnable介面即是利用Builder Design
寫Java其實你已經跟著他的步驟在使用Pattern
只是渾然不覺
使用別人寫的系統時不如花點時間思考一下
為什麼別人要這樣設計?


class Ibuilder {
public:
virtual void build(){}
};

class good_builder : public Ibuilder {
public:
virtual void build()
{
cout << "good building\n";
}
};

class bad_builder : public Ibuilder {
public:
virtual void build()
{
cout << "bad building\n";
}
};

class who_use_builder : public Ibuilder {
private:
Ibuilder *builder;
public:
who_use_builder(Ibuilder *builder)
{
this->builder = builder;
}

who_use_builder()
{
this->builder = this;
}

virtual void build()
{

}

void start_build()
{
this->builder->build();
}
};

class I_use_builder : public who_use_builder {
public:
virtual void build()
{
cout << "fair building\n";
}
};

int main()
{
// like extends Thread
I_use_builder* me = new I_use_builder();
me->start_build();
// like implements Runnable interface
who_use_builder* w1 = new who_use_builder(new good_builder);
w1->start_build();

who_use_builder* w2 = new who_use_builder(new bad_builder);
w2->start_build();

return 0;
}

沒有留言: