解決if else巢狀過多問題(涉及職責鏈模式)

2021-10-04 20:59:05 字數 1027 閱讀 3378

1)適用於邏輯表達模式相似

2)形式 :map> 

3)

#include #include #include typedef int (*ifun)(int,int);

typedef double (*dfun)(double, double);

using namespace std;

//普通函式

double add(double i, double j)

//函式類物件:c++標準庫很多演算法都是函式類物件

class divide

};auto mul = (double i, double j) ;

int main()

); mp.insert();

mp.insert();

cout<1)適用於邏輯表達模式不一樣

2)例項

#include using namespace std;

//職責鏈重點在於設定接任者

class handler

void setsuccessor(handler *successor)

virtual void handlerequest(int request) = 0;

protected:

handler *_successor;

};class handler1 :public handler

virtual void handlerequest(int request) override

else if(_successor)

}private:

string _name;

};class handler2 :public handler

virtual void handlerequest(int request) override

else if (_successor)

}private:

string _name;

};int main()

列舉Enum解決if else過多問題

最近接觸網際網路專案,發現實際網際網路專案中有非常多的判斷,每次功能迭代,需求一旦變動,或者加個字段,就會加一行if else,不得不說if else效率是很高,但是給後期可維護性,可讀性造成很大傷害,如果一連串的if else,幾個版本迭代下來,其他開發接手,都不敢動,更別提重構,只好又在後面再加...

解決TIME WAIT過多問題

netstat n awk tcp end last ack 14 syn recv 348 established 70 fin wait1 229 fin wait2 30 closing 33 time wait 18122 狀態 描述 closed 無連線是活動的或正在進行 listen 伺...

解決TIME WAIT過多問題

netstat n awk tcp end last ack 14 syn recv 348 established 70 fin wait1 229 fin wait2 30 closing 33 time wait 18122 狀態 描述 closed 無連線是活動的或正在進行 listen 伺...