假設(shè)你有一個為股票交易建模的類層次結(jié)構(gòu),例如買單,賣單,等等。為該類交易建立審計系統(tǒng)是非常重要的,這樣的話,每當(dāng)創(chuàng)建一個交易對象,在審計登錄項上就生成一個適當(dāng)?shù)娜肟陧?。這看上去不失為一種解決該問題的合理方法:
class Transaction {// 所有交易的基類
public:
Transaction();
virtual void logTransaction() const = 0;//建立依賴于具體交易類型的登錄項
...
};
Transaction::Transaction() //實現(xiàn)基類的構(gòu)造函數(shù)
{
...
logTransaction(); //最后,登錄該交易
}
class BuyTransaction: public Transaction {
// 派生類
public:
virtual void logTransaction() const; //怎樣實現(xiàn)這種類型交易的登錄?
...
};
class SellTransaction: public Transaction {
//派生類
public:
virtual void logTransaction() const; //怎樣實現(xiàn)這種類型交易的登錄?
...
};
class Transaction {// 所有交易的基類
public:
Transaction();
virtual void logTransaction() const = 0;//建立依賴于具體交易類型的登錄項
...
};
Transaction::Transaction() //實現(xiàn)基類的構(gòu)造函數(shù)
{
...
logTransaction(); //最后,登錄該交易
}
class BuyTransaction: public Transaction {
// 派生類
public:
virtual void logTransaction() const; //怎樣實現(xiàn)這種類型交易的登錄?
...
};
class SellTransaction: public Transaction {
//派生類
public:
virtual void logTransaction() const; //怎樣實現(xiàn)這種類型交易的登錄?
...
};