Posted on 2009-01-26 16:42
S.l.e!ep.¢% 閱讀(1296)
評(píng)論(2) 編輯 收藏 引用 所屬分類(lèi):
Design Pattern
所面臨的幾個(gè)客戶(hù),他們所要求的功能大同小異
客戶(hù)A 與 客戶(hù)B的UI 不一樣,
客戶(hù)A 需要 Function_1, Function_2, Function_3, Function_4
客戶(hù)B 需要 Function_2, Function_3, Function_5
于是將所有的 Function 都做到了基類(lèi)
class BaseClass
{
public:
??? void Function_1();
??? void Function_2();
??? void Function_3();
??? void Function_4();
??? void Function_5();
};
當(dāng)公司多了一個(gè)客戶(hù)C
客戶(hù)C 需要的功能是 Function_2, Function_3, Function_6
于是基類(lèi)需要再次修改
class BaseClass
{
public:
??? void Function_1();
??? void Function_2();
??? void Function_3();
??? void Function_4();
??? void Function_5();
??? void Function_6();
};
基類(lèi)一改,BUG就越多,于是修改為
class Function_1
{
public:
};
……
class Function_6
{
public:
};
class Custom_A
{
public:
private:
???? Function_1 m_fun_1;
???? Function_2 m_fun_2;
???? Function_3 m_fun_3;
???? Function_4 m_fun_4;
};
class Custom_B
{
public:
private:
???? Function_2 m_fun_2;
???? Function_3 m_fun_3;
???? Function_5 m_fun_5;
};
如此修改,雖然基類(lèi) BaseClass 可以避免每次的修改
但 瞬間,F(xiàn)unction_x 類(lèi)暴增~
類(lèi)的個(gè)數(shù)多了幾十個(gè)…………