簡體   English   中英

我應該使用哪種設計模式來避免使用偽代碼?

[英]What design pattern should I use to avoid dummy code here?

我有一個基礎課-

class content
{

private:
  int m_data;

public:

  int getdbhandle() { return m_sql_db; }

  void setData(int data) { m_data = data; }

  virtual int getterrestrialServices { qDebug()"This is a dummy interface"; }

};


class telecontent: public content
{

   virtual int getterrestrialServices { qDebug()" Real implementation here"; }

};

現在,當產品類型為tele時,類內容將實例化為telecontent。 但是,當產品類型為通用產品時,虛擬界面打印會不斷出現。 我該如何避免呢? 是否有任何設計模式強制基類不實現虛擬功能? 我想要一種有效的方法,以便僅派生類具有方法。 我不希望基類具有該方法。 但是,我無法修改調用方(代碼),因此不會調用該方法。 我想要策略設計的最佳方法,這樣可以避免虛擬界面。

是否有任何設計模式強制基類不實現虛擬功能?

純虛擬允許:

class content
{

private:
  int m_data;

public:
  virtual ~content() { }
  int getdbhandle() { return m_sql_db; }

  void setData(int data) { m_data = data; }

  virtual int getterrestrialServices() = 0; // pure virtual

};

這意味着沒有人可以創建內容實例(將導致編譯器錯誤),因此,當有人從內容繼承時,它們必須提供getterrestrialServices()的實現(否則,它們將獲得編譯器錯誤)。

您需要的是純虛擬的,如下所示:

virtual int getterrestrialServices() = 0;

它將強制每個類繼承內容以實現它,而您將無法創建內容類,僅對從其繼承的類進行分類,因此您將沒有虛擬打印件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM