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

