總看看書上的例子感覺很沒有成就感,深思述略了一下“資源管理類”,看到“資源”我想起了廁所,無論是在宿舍還是在公司裡廁所的資源都是有限的,有考慮到自己接觸的廁所都是比較低端的那種,也就是說隻能通過關門和開門來表示是否有人,于是我的類産生了,如下:
測所類:
class WC
{
public:
WC(){};
void doorClose()
{
std::cout << "I am here!"<< std::endl;
}
void doorOpen()
{
std::cout<< "you can come in!" << std::endl;
}
~WC(){};
private:
}
廁所管理者(資源管理類):
class WcAdmin{
public:
WcAdmin(WC *p);
~WcAdmin();
private:
WC *wc;
}
WcAdmin::WcAdmin(WC *p):wc(p)
{
wc->doorClose();
}
~WcAdmin::WcAdmin()
{
wc->doorOpen();
}
資源管理類的角色就是幫助廁所關門和開門,進而告訴我們廁所是否可用。
中午到了:
清掃廁所的阿姨要向廁所管理者要廁所來打掃,假如阿姨的函數如下:
void clean(WC *ptr);
如果向上面描述的廁所管理者是不合格的,他不知道自己負責廁所是哪一個了,沒事吸煙了。勤勞的阿姨可定會向總管告狀,然後他就被開除了。合格的廁所管理如下:
class WcAdmin{
public:
WcAdmin(WC *p);
~WcAdmin();
void get()
{
return wc;
}
private:
WC *wc;
}
WcAdmin::WcAdmin(WC *p):wc(p)
{
wc->doorClose();
}
~WcAdmin::WcAdmin()
{
wc->doorOpen();
}