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;
}
沒有留言:
張貼留言