簡體   English   中英

C ++閱讀器功能設計:輔助函數,類,私有,過度設計?

[英]C++ reader function design: helper functions, class, private, over-engineering?

在C ++中,我想實現一個閱讀器功能,即只執行一次,返回某些內容然后消失的方法。 讀取過程有點復雜,所以我認為我最好將其拆分為一個read(filename)和幾個幫助函數。 為了確保它們不會被意外訪問,我認為我將整個內容包裝在一個無狀態的類中,並將那些輔助函數標記為私有。 但是,這產生了代碼開銷,即必須先創建閱讀器類的實例,然后在其上調用read(filename) 好了,讓我們創建一個幫助器函數,創建一個所述類的實例,調用read(filename) ,將其轉儲並返回讀取的輸出。

class Reader
{
public:
Reader();

virtual
~Reader();

OutputData
read(const std::string & fileName);

private:
helper1_();
helper2_();
helper3_();
};

OutputData
ReadIt(const std::string & fileName)
{
Reader r();
OutputData out = r.read(fileName);
return out;
}

嗯,這有點工程化了。 您對此有何看法?

聽起來不錯,但是如果您只需要一組沒有狀態的獨立幫助程序函數,則最好使用自由函數並將其隱藏在實現中是一個更好的主意。 一種方法是將所有幫助程序放在實現文件中的匿名名稱空間中。

頭文件:

namespace Reader {

OutputData reatIt(const std::string& filename);

} // Reader namespace

實施文件

namespace Reader {

namespace {

void helper1_() { .... }
void helper2_() { .... }
void helper3_() { .... }

} // anonymous namespace

readIt(const std::string& filename) {
  // use helpers here. Client code will never know.
}

} // Reader namespace

暫無
暫無

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

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